【问题标题】:Automatically print a webpage to pdf自动将网页打印为 pdf
【发布时间】:2011-12-28 03:11:46
【问题描述】:

在使用 Chrome 和 Firefox 等浏览器时,可以选择将页面打印为 PDF(即将网页另存为 PDF 文件)。

<a href="JavaScript:window.print();">Print this page</a>

此代码打开打印页面,用户应从该页面手动选择打印到 PDF。这可以自动完成吗?如果有,请帮忙。

【问题讨论】:

    标签: javascript pdf google-chrome


    【解决方案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】:

      是的...前提是您的用户安装了一些东西。

      1. 他们需要 PDF 打印驱动程序,例如 PrimoPDF
      2. 如果您想自动打印到此驱动程序,则需要安装插件,例如 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 岁以上的用户群安装东西的麻烦。
      猜你喜欢
      • 2017-04-05
      • 2014-12-05
      • 2015-08-05
      • 1970-01-01
      • 2015-09-17
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多