我有一个PHP脚本,它在对象元素中显示PDF。 Adobe Reader插件处理这一点很好,使用Adobe工具栏用户可以打印嵌入的PDF。但是,某些用户坚持使用“文件”菜单(Internet Explorer 8上98%的用户)来打印HTML文档。利用IE中的File-> Print菜单,HTML文档打印出,没有OBJECT元素的内容(PDF)。 (Print Preview)使用此方法在Chrome或FF中打印文档只会打印当前显示在“对象”视口中的数据。也就是说,部分对象而不是实际的PDF。
我have searched并在StackOverflow上阅读了few related questions,但没有具体针对这种情况或案例。其中一些解决方案'使用Javascript方法或函数通过按钮或链接打印内容。如果我无法让我的用户在浏览器中使用Adobe工具栏来打印PDF,我怀疑他们会改变主意,使用一个按下“打印”的按钮。
为什么IE中的File-> Print方法导致空白页?有没有办法让浏览器在使用File-> Print菜单时打印Object元素的内容。没有JS黑客,按钮,点击此处的链接,iframe或建议将其显示为内嵌'等。
供参考,此代码'查看PDF'在下面(再次,可以在对象元素中显示PDF内容;没有问题)。
echo "
<html>
<head>
<title>View PDF</title>
</head>
<body scroll='no'>
<object data='getFile.php?f={$file_hash}' type='application/pdf' width='100%' height='100%' >
<h2>Error: No PDF plugin</h2>
<p>The browser does not have a PDF viewer installed. In order to view the PDF in the browser, please <a href='http://get.adobe.com/reader'>download Adobe Reader</a>. </p>
</object>
</body>
</html>";
答案 0 :(得分:1)
据我所知,这个问题没有解决办法。我看到一些开发人员通过generating a PDF file that automatically shows the print dialog when opened
“解决”了这个问题另一种选择可能是在新窗口中显示PDF文件,删除工具栏和菜单以避免视觉模糊。
Window.open(url, "_blank", "location=0,menubar=0,toolbar=0");
我不知道这个是否有效,但您可以尝试detecting the browser print event,然后在Acrobat Reader对象上调用pdfDoc.printAll();
。
答案 1 :(得分:0)
只打开PDF - 没有HTML&amp;宾语。然后File-&gt; Print将始终有效。
当然,如果PDF在浏览器中显示或在新的阅读器窗口中打开,则更依赖于浏览器/阅读器配置