【问题标题】:Export html to PDF with JavaScript使用 JavaScript 将 html 导出为 PDF
【发布时间】:2015-09-25 21:29:52
【问题描述】:

我想用 JavaScript 将 HTML 导出为 PDF,我看到了像 jsPDFpdfMake 这样的库,但它们非常有限。例如,没有它们我可以导出 HTML 元素,如<hr>,使用 jsPDF 样式非常有限,我看到this 问题但答案对我不起作用,使用 pdfMake 我无法下载 pdf,只是chrome

【问题讨论】:

  • 我见过的最好的方法是使用服务器端进程来启动 PhantomJS,打印到 PDF 并使用生成的文件进行响应
  • 在我的项目中我不能使用服务器,我必须在客户端进行...
  • 这是我目前正在努力解决的问题,我有既得利益要解决这个问题。我的看法是,任何服务器端解决方案都应该使用公认的渲染引擎,像 PhantomJS 这样的渲染引擎不清楚它使用的是什么渲染引擎,因此结果可能不如预期,尤其是对于较新的 HTML5 元素。另一个问题是来自独立进程 Java 应用程序的自动化。只要您有打印驱动程序,就可以轻松地从浏览器打印到 PDF。我假设我们都有自动化需求。

标签: javascript html pdf jspdf pdfmake


【解决方案1】:

如果您可以从 URL 中检索 HTML,您可能需要查看我写的 this answer,它解释了如何做到这一点。

例子:

https://dhtml2pdf.herokuapp.com/api.php?url=https://www.github.com&result_type=show

在您的 HTML 中放置一个显示 PDF 或在您的 HTML 中下载它的锚点非常容易。

此锚点将显示从https://www.github.com 页面转换的 PDF:

<a href="https://dhtml2pdf.herokuapp.com/api.php?url=https://www.github.com&result_type=show" target="_blank">Show PDF</a>

这个会下载它:

<a href="https://dhtml2pdf.herokuapp.com/api.php?url=https://www.github.com&result_type=download&file_name=my_pdf">Download PDF</a>

如果您想使用 JavaScript 进行尝试,您可以创建一个 HTML 按钮并在点击事件时下载 PDF。示例:

HTML:

<button type="button" id="download-pdf-button">Download the PDF</button>

JavaScript:

document.getElementById("download-pdf-button").addEventListener("click", function() {
    var link = document.createElement('a');
    link.href = 'https://dhtml2pdf.herokuapp.com/api.php?url=https://www.github.com&result_type=download';
    link.download = 'file.pdf';
    link.dispatchEvent(new MouseEvent('click'));
});

See the project in Github.

希望对你有帮助。

【讨论】:

  • 该项目不再工作。可以更新一下吗?
  • 项目再次停止工作。请问有没有办法分叉它以避免未来不可预测的中断?
  • 嗨@JohnMax,我已经回答了你在 Github 上创建的问题:github.com/Dellos7/dhtml2pdf/issues/7,我向你解释了如何分叉它以便使用应用程序设置你自己的 Heroku 实例
猜你喜欢
  • 2016-09-19
  • 2014-09-10
  • 1970-01-01
  • 2013-08-25
  • 1970-01-01
  • 2023-04-09
  • 2016-05-10
  • 2015-04-14
  • 1970-01-01
相关资源
最近更新 更多