0

我想知道如何使用 Chrome Headless(例如 puppeteer)获取 PDF。它似乎是一个不错的 PDF 制作工具,但只能在使用 @media print 的 chrome 上。所以这是我的问题:

我也可以通过 puppeteer 在另一个浏览器(即 mozilla)上获取 PDF 吗?如果我想打印没有输入的静态页面,我想我可以做到这一点。但是,如果我有用户输入并且他们将其保存在 IE 上。我可以以某种方式使用它吗?


好的,我下载了 puppeteer。我有代码:

$scope.aClick = function(){
        const puppeteer = require('puppeteer');

        (async () => {
          const browser = await puppeteer.launch();
          const page = await browser.newPage();
          await page.goto('/vUrl_form.html', {waitUntil: 'networkidle'});
          await page.pdf({path: 'images/asd.pdf', format: 'A4'});

          browser.close();
        })();
    };

这仍然无法工作(我不知道为什么,但应用程序无法运行)。

4

3 回答 3

3

否 - Puppeteer 仅适用于 Chromium/Chrome。

于 2017-08-22T16:53:35.033 回答
0

今天可以将 firefox 与 puppeter 一起使用https://firefox-puppeteer.readthedocs.io/en/master/也许当人们回答不是。但我找不到 pdf 功能的 url。只是截图。

于 2017-12-18T10:25:47.177 回答
0

不幸的是,Puppeteer 仅适用于 Chromium/Chrome。

如果您想使用 Headless Mozilla Firefox,您可以考虑查看https://developer.mozilla.org/en-US/Firefox/Headless_mode

如果您仍想使用 Puppeteer,这里有一个创建 .pdf 文件的工作片段:

const puppeteer = require('puppeteer');

(async() => {

const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://news.ycombinator.com', {waitUntil: 'networkidle'});
// page.pdf() is currently supported only in headless mode.
// @see https://bugs.chromium.org/p/chromium/issues/detail?id=753118
await page.pdf({
  path: 'hn.pdf',
  format: 'letter'
});

browser.close();

})();
于 2017-08-29T14:44:58.773 回答