如何下载由javascript生成的HTML作为pdf

时间:2013-02-09 12:26:05

标签: ruby google-chrome printing nokogiri pdfkit

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

当我运行javascript时,它返回html ready,带有链接到chrome打印机的按钮,保存为pdf。我想将这个html保存为PDF格式,但我无法做到。

我已经花了好几天时间将almos所有的东西,与Nokogiri Parsing的PDFKit,搜索了一个镀铬打印机API等等,但没有任何成功。有谁知道我该怎么做?

2 个答案:

答案 0 :(得分:1)

使用phantomjsrasterize.js可以转换它。

然后只需运行命令

phantomjs rasterize.js $URL_OR_PATH $PDF_OUT_FILENAME Letter

答案 1 :(得分:0)

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

替代方法是使用其中一个WATIR宝石来驱动浏览器,并以这种方式访问​​文件。然后你可以检索HTML,或让浏览器检索文件,并在完成后将其从磁盘上取下。


  

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

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

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