我有一个 PHP 脚本,它在对象元素内显示 PDF。Adobe Reader 插件可以很好地处理这个问题,用户可以使用 Adobe 工具栏打印嵌入的 PDF。但是,一些用户坚持使用“文件”菜单(98% 的用户使用 Internet Explorer 8)来打印 HTML 文档。利用 IE 中的这个 File->Print 菜单,可以打印出没有 OBJECT 元素的内容 (PDF) 的HTML 文档。(打印预览)使用此方法在 Chrome 或 FF 中打印文档只会打印对象视口中当前显示的数据。也就是说,一个部分对象而不是实际的 PDF。
我在 StackOverflow 上搜索并阅读了一些 相关 问题,但没有针对这种情况或案例的具体问题。其中一些“解决方案”使用 Javascript 方法或函数通过按钮或链接打印内容。如果我不能让我的用户使用浏览器中的 Adobe 工具栏来打印 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>";