使用 puppeteer API 生成 pdf 时无法捕获图像

Suc*_*tra 2 javascript node.js selenium-chromedriver google-chrome-headless puppeteer

Node- v8.11.1 Headless Chrome
我试图生成 PDF,但不知何故在 PDF 中没有捕获背景图像。下面是代码。任何帮助表示赞赏

const puppeteer = require('puppeteer'); 
(async () => {
const browser = await puppeteer.launch({headless: true});
const page = await browser.newPage();
await page.goto('http://54.201.139.151/', {waitUntil : 'networkidle0'});
await page.pdf({path: 'hn40.pdf', printBackground: true, width: '1024px' , height: '768px'});
await browser.close();
})();
Run Code Online (Sandbox Code Playgroud)

pmk*_*kro 5

正如 Rippo 提到的,您需要 page.emulateMedia("screen")它才能正常工作。我已经更新了下面的脚本,但我将页面更改为谷歌进行测试。

const puppeteer = require('puppeteer'); 
(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto('http://google.ca/', {waitUntil : 'networkidle2'});
    await page.emulateMedia('screen');
    await page.pdf({path: 'hn40.pdf', printBackground: true, width: '1024px' , height: '768px'});
    await browser.close();
})();
Run Code Online (Sandbox Code Playgroud)


小智 5

更新:page.emulateMedia()被删除以支持page.emulateMediaType()