【问题标题】:How to download a html generated by a javascript as pdf如何将由 javascript 生成的 html 下载为 pdf
【发布时间】:2013-02-09 12:26:04
【问题描述】:

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

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

我花了好几天的时间尝试一切,PDFKit 与 Nokogiri 解析,搜索 chrome 打印机 API 等,但没有成功。有谁知道我该怎么做?

【问题讨论】:

    标签: ruby google-chrome printing nokogiri pdfkit


    【解决方案1】:

    使用phantomjsrasterize.js可以转换。

    然后运行命令

    phantomjs rasterize.js $URL_OR_PATH $PDF_OUT_FILENAME Letter

    【讨论】:

      【解决方案2】:

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

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


      我没有理解你提出的第二种解决方案,你能解释一下吗?

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

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

      【讨论】:

      • 建议的第一个解决方案不起作用,因为除了向 js 发送请求的浏览器(在本例中为 Watir 的浏览器)之外,该链接无法通过其他方式访问。我不明白你提出的第二种解决方案,你能解释一下吗?
      猜你喜欢
      • 2016-10-23
      • 2012-06-19
      • 2020-02-19
      • 2012-05-29
      • 1970-01-01
      • 1970-01-01
      • 2015-09-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多