我想把javascript生成的html保存在网站上。
当我运行javascript时,它会向我返回html就绪,并带有一个链接到chrome打印机的按钮,以保存为pdf。我想把这个html版本保存为PDF,但我做不到。
我花了好几天时间开发almos所有东西,与Nokogiri Parsing的PDFKit,搜索铬打印机API等,但没有成功。有人知道我该怎么做吗?
使用phantomjs和rasterize.js可以转换它。
然后运行命令
phantomjs rasterize.js $URL_OR_PATH $PDF_OUT_FILENAME Letter
根据您正在运行的JavaScript,找出它调用的URL,以及它添加到GET/POST请求中的任何变量,然后使用OpenURI或某种HTTP客户端来请求该文件。将其传递给Nokogiri,并解析出文件的URL。
另一种选择是使用WADIR宝石之一来驱动浏览器,并以这种方式访问文件。然后,您可以检索HTML,或者让浏览器检索文件,并在完成后将其从磁盘中取出。
我不理解你提出的第二个解决方案,你能解释更多吗?
有时开发人员使用Ajax来检索HTML并将其插入到页面中,或者使用JavaScript直接操作页面的HTML。
您可以要求Watir驱动的浏览器为您提供当前的HTML,然后使用Nokogiri或另一个XML解析器对其进行解析,以检索当时属于HTML DOM的内容。从那里你可以把它保存到磁盘上,让Watir驱动的浏览器读取并渲染它。然后,你就需要弄清楚如何让浏览器打印成PDF,或者获取屏幕快照将其转换成PDF。