自动将网页打印为 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的主要内容,如果未能解决你的问题,请参考以下文章

javascript 打印网页成pdf文件

在 chrome 中自动打印/保存网页为 pdf - python 2.7

怎么把网页上的东西打印成pdf

如何把要打印的网页导出成pdf文件

360浏览器打印网页输出为pdf文件怎么设置

如何通过“ Microsoft打印为PDF”以编程方式将文件和网页打印为PDF?