使用FILE-> PRINT菜单时如何打印OBJECT元素的内容?

时间:2012-10-10 18:45:11

标签: php html pdf browser

我有一个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>";

2 个答案:

答案 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在浏览器中显示或在新的阅读器窗口中打开,则更依赖于浏览器/阅读器配置