0

我想将 javascript 生成的 html 保存在网站上。

当我运行 javascript 时,它会返回准备好的 html,并带有一个链接到 chrome 打印机的按钮,以另存为 pdf。我想将这个生成的 html 保存为 PDF,但我做不到。

我花了几天时间尝试所有的东西,使用 Nokogiri Parsing 的 PDFKit,搜索 chrome 打印机 API 等,但没有成功。有谁知道我该怎么做?

4

2 回答 2

1

使用phantomjsrasterize.js可以转换它。

然后只需运行命令

phantomjs rasterize.js $URL_OR_PATH $PDF_OUT_FILENAME Letter

于 2013-02-27T02:37:24.437 回答
0

根据您正在运行的 JavaScript,找出它调用的 URL,以及它添加到 GET/POST 请求中的任何变量,然后使用 OpenURI 或某种 HTTP 客户端来请求该文件。将其传递给 Nokogiri,并解析出文件的 URL。

另一种方法是使用 WATIR gem 之一来驱动浏览器,并以这种方式访问​​文件。然后您可以检索 HTML,或者让浏览器检索文件,并在完成后将其从磁盘中取出。


我不明白你提出的第二种解决方案,你能解释一下吗?

有时开发人员使用 Ajax 检索 HTML 并将其插入到页面中,或者使用 JavaScript 直接操作页面的 HTML。

您可以让 Watir 驱动的浏览器为您提供当前的 HTML,然后使用 Nokogiri 或其他 XML 解析器对其进行解析,以检索当时属于 HTML DOM 的内容。从那里您可以将其保存到磁盘并让 Watir 驱动的浏览器读取并渲染它。然后就是弄清楚如何让浏览器打印为 PDF,或者抓取屏幕快照将其转换为 PDF。

于 2013-02-11T23:49:42.260 回答