我想在网站上保存由javascript生成的html。
当我运行javascript时,它返回html ready,带有链接到chrome打印机的按钮,保存为pdf。我想将这个html保存为PDF格式,但我无法做到。
我已经花了好几天时间将almos所有的东西,与Nokogiri Parsing的PDFKit,搜索了一个镀铬打印机API等等,但没有任何成功。有谁知道我该怎么做?
答案 0 :(得分:1)
使用phantomjs和rasterize.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格式。