如何从浏览器打印 PDF

IT技术 javascript html pdf
2021-02-23 14:58:00

在 Web 应用程序中,是否可以强制在客户端打印 PDF 文件?如果浏览器配置为在窗口内打开 PDF,我猜调用 window.print() 会起作用,但某些浏览器(如我的)配置为从外部打开 PDF。

6个回答

google docs 的方法是将 JavaScript 嵌入到 PDF 中,告诉 Acrobat Reader 或任何其他兼容的阅读器打印它。

您需要一个 PDF 工具包来使用随机 PDF 执行此操作。

结帐 PHP 的 FPDF 和 FPDF 的这个插件:fpdf.de/downloads/addons/36
2021-04-23 14:58:00
如果您可以使用 iTextSharp,则不需要 PDF 工具包。这是一个页面链接,告诉您如何使用 iTextSharp 将 javascript 添加到 PDF 以打印 pdf。 itextsharp.sourceforge.net/tutorial/ch11.html
2021-05-06 14:58:00
iTextSharp 是一个 PDF 工具包。
2021-05-10 14:58:00
当使用 TCPDF 添加$pdf->IncludeJS('print(true);');到您的代码中时会打开打印对话框(在 Chrome 和 FF 上测试),请参阅TCPDF 的示例 53
2021-05-12 14:58:00
<html>
<script language="javascript">
timerID = setTimeout("exPDF.print();", 1000);
</script>
<body>
<object id="exPDF" type="application/pdf" data="111.pdf" width="100%" height="500"/>
</body>
</html>
这在带有 Adob​​e 阅读器插件(在 Ubuntu 上)的 Firefox 9 中不起作用。( exPDF.print is not a function). 你从哪里得到它的工作?
2021-04-25 14:58:00
Paulo,exPDF 是您要打印为 PDF 的项目的 ID。
2021-04-27 14:58:00
这是一个仅限 IE 的解决方案。
2021-05-06 14:58:00
-1; 在(我安装的)Chrome 中,<object>元素没有.print()方法,因此失败。也许有(或曾经)适用于某个平台,但如果没有关于该平台是什么的提示,它对我来说没有用。
2021-05-10 14:58:00

与 taeyoung 的建议类似,您可以使用 iframe 渲染 pdf,然后使用 contentWindow.print();

实际上,Firefox 在 iframe 中显示 PDF,并忽略方法调用(错误消息在 Firebug 的 JS 控制台上可见)。
2021-04-19 14:58:00
我认为这只适用于 webkit。其他浏览器只会下载它。
2021-04-20 14:58:00
就像 taeyoung 的解决方案一样,这在带有 Adob​​e 阅读器插件(在 Ubuntu 上)的 Firefox 9 中不起作用。( exPDF.print is not a function). 你从哪里得到它的工作?
2021-05-08 14:58:00
这似乎适用于 os x 上的 ff9,$('#exPDF')[0].focus(); $('#exPDF')[0].contentWindow.print();
2021-05-10 14:58:00

您可以将 http 标头设置为 application/pdf,然后使用 javascript 强制打开一个新窗口并以这种方式打印。但谁真的会那样做呢?我的意思是现在来吧。

您可以使用简单的令人惊叹的库printjshttp://printjs.crabbly.com ”,它需要 PDF 文件并在不显示打印对话框的情况下打印它,下面是一种简单的方法:

 <button type="button" onclick="printJS('docs/printjs.pdf')">
    Print PDF
 </button>

我对这个很感兴趣,直到我在测试登台时在控制台中得到一个惊喜:“PrintJS 目前不支持在 Firefox、Internet Explorer 和 Edge 中打印 PDF。” 哈哈
2021-04-23 14:58:00