我选择哪一种浏览器?

时间:2019-07-10 13:41:55

标签: node.js phantomjs pdf-generation puppeteer google-chrome-headless

前几天我们使用phantomjs通过服务器端prince工具生成pdf。如今,我们希望将无头浏览器从phantomjs更改为另一种。

我研究了哪个正在快速渲染phantomjs和puppeteer。在我的Reporting应用程序中生成PDF,只有我使用puppeteer和phantomjs对其进行测试。 phantomjs与puppeteer相比,可以快速处理HTML。

然后我学习了google-chrome-headless选项来生成PDF。看起来像Chrome浏览器GUI应用程序的内置模块。我正在使用nodejs应用程序。我在命令行中使用了以下命令

chrome --headless --disable-gpu --print-to-pdf <src_url>

我注意到--disable-gpu选项,其他工具没有。

  • 此选项与其他两个无头浏览器工具(phantomjs,puppeteer)有何不同?
  • 我可以使用哪个工具来生成pdf?

1 个答案:

答案 0 :(得分:1)

这是这些工具的作用

  • phantomJS 是可编写脚本的Headless WebKit。类似于铬浏览器。 已弃用,项目已存档。
  • :Chromium是Google的开源Web浏览器项目。它本身就是一个功能齐全的浏览器,并为Google Chrome浏览器提供了绝大多数代码。
  • 无头铬:Chrome 59附带了无头Chrome。这是在无头环境中运行Chrome浏览器的一种方法。本质上,在没有Chrome的情况下运行Chrome!它将Chromium和Blink渲染引擎提供的所有现代Web平台功能引入命令行。
  • Puppeteer :Puppeteer是一个Node库,它提供了高级API来通过DevTools协议控制Chrome或Chromium。 Puppeteer默认情况下无头运行,但可以配置为运行完整(无头)的Chrome或Chromium。

您可以使用操纵up来控制铬和无头铬的实例。当然,它将允许您提供参数并使用该API生成PDF。

您可以使用Chrome CLI和Puppeteer控制相同的API。

这是您可以使用无头铬生成网站pdf的方法。

chrome --headless --disable-gpu --print-to-pdf https://www.chromestatus.com/

在这里使用木偶戏也是一样,

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://www.chromestatus.com/');
  await page.pdf({path: 'chromestatus.pdf', format: 'A4'});
  await browser.close();
})();