【问题标题】:How to print the content of an OBJECT element when using the FILE->PRINT menu?使用 FILE->PRINT 菜单时如何打印 OBJECT 元素的内容?
【发布时间】:2012-10-01 07:56:46
【问题描述】:

我有一个 PHP 脚本,它在对象元素中显示 PDF。 Adobe Reader 插件可以很好地处理这个问题,用户可以使用 Adob​​e 工具栏打印嵌入的 PDF。但是,一些用户坚持使用“文件”菜单(98% 的用户使用 Internet Explorer 8)来打印 HTML 文档。利用 IE 中的这个 File->Print 菜单,HTML 文档被打印出来没有 OBJECT 元素的内容 (PDF)。 (Print Preview) 使用此方法在 Chrome 或 FF 中打印文档只会打印对象视口中当前显示的数据。也就是说,一个部分对象而不是实际的 PDF。

我在 StackOverflow 上 have searched 并阅读了 few related questions,但没有针对这种情况或案例的具体内容。其中一些“解决方案”使用 Javascript 方法或函数通过按钮或链接打印内容。如果我不能让我的用户使用浏览器中的 Adob​​e 工具栏来打印 PDF,我怀疑他们会改变主意使用“打印”按钮。

为什么IE中的File->Print方法会出现空白页?有没有办法让浏览器在使用 File->Print 菜单时打印 Object 元素的内容。没有 JS hack、按钮、“单击此处”的链接、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>";

【问题讨论】:

    标签: php html pdf browser


    【解决方案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();

    【讨论】:

    • 感谢您提供的信息,我明天会尝试您的建议并告诉您结果。
    • 实现了window.open() 方法的建议来移除菜单栏。它会让一些用户感到困惑,但只允许一种打印方法;谢谢。
    【解决方案2】:

    只打开 PDF - 没有 HTML 和对象。然后 File->Print 将始终有效。

    当然,如果 PDF 是在浏览器中显示还是在新的阅读器窗口中打开,这更多地取决于浏览器/阅读器的配置

    【讨论】:

    • 感谢您的回复。但是,对于这个实现,我不能只打开 PDF。那太容易了!如果只打开 PDF,我无法以编程方式设置浏览器的窗口标题。由于客户的要求,这是“不可接受的”,因为页面必须显示特定的标题而不是 URL(如果 PDF 被打开而不是嵌入就会发生这种情况)。
    猜你喜欢
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 2022-01-22
    • 2013-07-19
    • 1970-01-01
    • 2023-01-12
    • 1970-01-01
    相关资源
    最近更新 更多