动态HTML到PDF

时间:2010-02-25 01:07:50

标签: html pdf parsing pdf-generation dhtml

我需要能够将动态HTML(通过javascript在页面加载时呈现的html)转换为PDF。我知道有很多HTML到PDF转换器,但到目前为止我找到的没有一个处理动态HTML。

给定工具应该能够成功转换以下页面 - http://www.simile-widgets.org/timeline/

干杯 安东尼

更新:

我不需要这里的JavaScript功能...即我不需要能够与屏幕交互...我只是希望在PDF中捕获屏幕的最终渲染 - 就像拍照页面加载后。在我提供的示例中,javascript只是将div渲染到屏幕上,因此只要它“首先”渲染“页面”,它就不应该处理它。

6 个答案:

答案 0 :(得分:1)

没有办法可以做到。与您在Web浏览器中享受的完整DOM和BOM访问相比,PDF中脚本可用的界面非常有限。您可以在PDF中实现的这种交互不容易从浏览器中的工作方式进行翻译,并且几乎肯定需要手工创作。

您的示例页面有许多效果,PDF作为一种基本上静态的文档布局格式,根本无法再现。

编辑:

  

我只想在PDF中捕获屏幕的最终渲染

啊,好的,那是一个更容易,更常见的问题。

在这种情况下,你将不得不使用和自动化真正的网络浏览器(如Firefox),或者提供Web浏览器所有逻辑的工具包(如WebKit),然后是:

  • 导出为PDF,使用Firefox中的“打印到文件”等内置工具(打开背景图像/颜色)或其中一个PDF导出插件,或者

  • 拍摄浏览器的图片(如果必须,请将图片包含在PDF中)

有关浏览器快照的一些讨论,请参阅these questions

答案 1 :(得分:0)

您可以使用javascript URI来提醒当前的DOM。例如:

javascript:alert("<html>" + document.documentElement.innerHTML + "</html>")

复制HTML并保存到文件中 然后通过HTML2PDF转换器运行它。

答案 2 :(得分:0)

它使用任何JavaScript的事实意味着很多转换器都无法工作。 JavaScript可能很简单,但您仍然需要一个解释器来处理它。

我没有自己使用它,但你可以试试wkhtmltopdf。它使用webkit渲染引擎,我相信它包括完整的JavaScript支持。您需要能够安装软件并运行可执行文件,否则它应该非常简单。

答案 3 :(得分:0)

dynamic-html-pdf

这是 node js 将动态 html 转换为 pdf 的最佳库。

Postman

答案 4 :(得分:0)

您可能可以使用 PhantomJSheadless chrome

答案 5 :(得分:-1)

尝试xhtml2pdf。这是project page at python.org