自动将网页打印为 pdf
Posted
技术标签:
【中文标题】自动将网页打印为 pdf【英文标题】:Automatically print a webpage to pdf 【发布时间】:2011-12-28 03:11:46 【问题描述】:在使用 Chrome 和 Firefox 等浏览器时,可以选择将页面打印为 PDF(即将网页另存为 PDF 文件)。
<a href="javascript:window.print();">Print this page</a>
此代码打开打印页面,用户应从该页面手动选择打印到 PDF。这可以自动完成吗?如果有,请帮忙。
【问题讨论】:
【参考方案1】:您无法使用 Javascript 将页面打印为 pdf。您必须使用服务器端脚本将页面打印为 pdf。在 php 中,您可以使用 3rd 方 PDF 库,例如 http://www.tcpdf.org 。
【讨论】:
【参考方案2】:用 Javascript 打印到 PDF 的内容不多。
最受支持的选项确实是使用诸如 tcpdf 之类的库在服务器端生成它(如 Thein Hla Maw 所示)。
我不认为 Mark 的解决方案是正确的,因为它需要用户安装一些软件。
对于纯javascript PDF生成,有this。
注意:thanks SO :-)
【讨论】:
感谢您回答我的问题。我为你投票。这是我能为你做的最多的事情:-)【参考方案3】:是的...前提是您的用户安装了一些东西。
-
他们需要 PDF 打印驱动程序,例如 PrimoPDF
如果您想自动打印到此驱动程序,则需要安装插件,例如 JS Print Setup(用于 Firefox)或 MeadCo ScriptX for IE
然后,使用该插件的 API,您可以选择打印到哪个驱动程序。您甚至可以跳过打印对话框。
然而,更好的选择是在服务器端生成 PDF,将其流式传输给他们,然后在他们查看 PDF 时使用 PDF 中的 JavaScript 自动打开打印对话框。这样他们就不需要任何插件了。
【讨论】:
如果用户使用的是 Linux,这很容易:-) @Pointy:为什么?它们是否预装了 PDF 打印机? @Mark 我也尝试过使用 html2pdf 和 dompdf .. 虽然它们看起来是不错的选择,但实际上并非如此。它们不打印表格,渲染时间太长,图像大小固定且非常不稳定.. .. 是的,打印到 PDF 或多或少在 Linux 中本机可用。至少它在 Ubuntu 发行版中,因为基本上永远存在。 @Preets:好吧,欢迎你采纳我的第一个建议,但如果你有一个非常受控的用户群,它会最有效。或者按照 Thein 的建议尝试 TC PDF。我在使用 dompdf 时也遇到了一些麻烦,但我认为它解决了跨浏览器兼容性和教你 50 岁以上的用户群安装东西的麻烦。以上是关于自动将网页打印为 pdf的主要内容,如果未能解决你的问题,请参考以下文章