javascript - 如何配置 puppeteer 以获得包含完整图像和样式的 pdf 页面?

标签 javascript node.js puppeteer

当我使用 puppeteer page.pdf 时,图像 - 2 - 和某些样式 - 1 - 不会加载。 即使我设置page.waitForNavigation
enter image description here

如果我使用相同的代码与 page.screenshot 而不是 page.pdf ,它就可以工作了!
enter image description here

  • Node v8.5.0
  • Puppeteer 0.10.2(最新)


代码:

const puppeteer = require( 'puppeteer' );
const link = 'https://chrome.google.com/webstore/category/extensions?hl=pt-BR';
( async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto(link);
  await page.waitForNavigation({timeout: 120000, waitUntil: 'networkidle', networkIdleTimeout: 3000});
  await page.pdf({path: 'page.pdf'});

  // if I remove page.pdf and change to the line below it works!
  //await page.screenshot({fullPage: true, path: 'page.png'});

  browser.close();
})()

最佳答案

将 printBackground 参数设置为 true

await page.pdf( { path: 'test.pdf', printBackground: true } )

关于javascript - 如何配置 puppeteer 以获得包含完整图像和样式的 pdf 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46306324/

相关文章:

javascript - html2canvas导致IE11挂起进入 "Not responding"状态

node.js - 来自 MongoDB 的随机记录

node.js - 逐行读取gzip流

javascript - Puppeteer : send array of elementHandle to page. 评估

javascript - Puppeteer 无法使用评估获取页面的innerHTML

javascript - 如何在内部函数中调用外部 "this"?

Javascript 从 html 表的特定行获取列的文本值

mysql - 如何找出使用 Node js 连接 Mysql 失败的原因

javascript - 如何将大量文本发送到可编辑的 ="true"元素中?

javascript - 检查特定 radio 输入时激活禁用的文本区域