动态 HTML 转 PDF

7
我需要能够将动态HTML(由javascript在页面加载时渲染的html)转换为PDF。我知道有很多HTML到PDF的转换器,但迄今为止我找到的没有一个能处理动态HTML。
给定的工具应该能够成功地转换以下页面- http://www.simile-widgets.org/timeline/ 谢谢 安东尼
更新:
我不需要JavaScript功能...也就是说,我不需要能够与屏幕交互...我只想捕捉PDF中的最终呈现 - 就像在页面加载后拍照一样。在我提供的示例中,javascript仅将div呈现到屏幕上,因此只要它让“页面”先呈现就可以处理它。

1
因为有很多类似但不完全相同的问题,所以我决定尝试收集一个完整的HTML到PDF转换器列表,并将其作为社区维基问题发布在http://stackoverflow.com/questions/3178448/list-of-html-to-pdf-converters上。 - rjmunro
1
@rjmunro - 听起来非常有用,但是页面已经消失了 - 你能在其他地方发布列表吗? - EML
你找到答案了吗? - EML
6个回答

1

这是不可能完成的。与您在Web浏览器中享受的完整DOM和BOM访问相比,PDF中脚本可用的接口非常有限。您可以在PDF中实现的交互不能轻松地从浏览器中的工作方式进行翻译,并且几乎肯定需要手动编写。

您的示例页面具有许多效果,而PDF作为基本静态文档布局格式根本无法完全复制。

编辑:

我只想捕捉屏幕的最终呈现结果并将其保存为PDF

啊,好的,那么这个问题就容易得多,也更常见。

在这种情况下,您必须使用并自动化一个真正的Web浏览器(如Firefox),或者提供Web浏览器所有逻辑的工具包(如WebKit),然后执行以下操作之一:

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

  • 拍摄浏览器的图像快照(如果必要,将图像包含在PDF中)

查看这些 问题,了解有关浏览器快照的一些讨论。


不是这样的。现在可以将Flash添加到PDF文件中。但是我不知道是否有JavaScript转换为ActionScript / Flash的路径。 :) - ghoppe

1

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

我自己没有使用过它,但您可以尝试wkhtmltopdf。它使用Webkit渲染引擎,我相信它包括完整的JavaScript支持。您需要能够安装软件并运行可执行文件,但除此之外,它应该相当简单。


0
你可以使用JavaScript URI来弹出当前DOM。例如:
javascript:alert("<html>" + document.documentElement.innerHTML + "</html>")

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


它需要是一个自动化的过程...即用户单击一个按钮,就可以下载报告... - vdh_ant
如果您指的是页面中的按钮(而不是浏览器),那么显然您控制着该网站,因此可以使用XMLHttpRequest将HTML POST到服务器,并在服务器上通过转换器运行它。 - Sean Hogan

0

你确定它之所以被称为“动态”,不仅仅是因为它的手柄模板吗?仅仅因为服务器端的JavaScript(node)被执行,并不意味着客户端的JavaScript也会被执行。经过快速查看,文档并没有提到客户端JavaScript的执行。 - shaedrich

0

-1

他需要一个能够理解JavaScript修改页面的解决方案。 - Matthew Flaschen
我看不到在哪里可以测试实时的HTML页面,也没有提到太多关于JavaScript或DHTML。 - vdh_ant
抱歉,Pisa的Python项目页面有一个链接。我已经更改了我的链接。 - ghoppe
问题仍然存在...它是否能处理我所描述的情况...即通过JavaScript在加载时生成的dhtml... - vdh_ant

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接