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