如何解决通过puppeteer生成的PDF内容丢失
我正在尝试通过将URL发送给puppeteer来生成PDF。我将具体的高度和宽度作为page.pdf方法的选项。我能够获得PDF的确切高度,但最后缺少一些内容。而且只有高度更高的PDF才会发生这种情况。
下面是我的代码:
let pdf = {};
const puppeteerArguments = [];
puppeteerArguments.push('--disable-web-security','--allow-running-insecure-content','--no-sandbox','--disable-setuid-sandbox','--disable-gpu','--no-first-run','--hide-scrollbars','--disable-dev-shm-usage','--allow-cross-origin-auth-prompt','--enable-hardware-overlays','--start-fullscreen'
);
const browser = await puppeteer.launch({headless: true,args: puppeteerArguments,sloMo: 0});
const page = await browser.newPage();
const {url} = payload;
await page.setViewport({
width: 1024,height: 7500,deviceScaleFactor: 1,isMobile: false
});
page.setExtraHTTPHeaders({
"cookie": '******',});
await page.goto(url,{waitUntil: 'networkidle0',timeout: 0}).then(() => {
console.log('load success');
});
await page.emulateMedia('screen');
await page.addStyleTag({
content: `
html {
-webkit-print-color-adjust: exact !important;
-webkit-filter: opacity(1) !important;
}`
});
const selector = '.widgetsRendered'
await page.waitForFunction(selector => !!document.querySelector(selector),{polling: 600,timeout: 0},selector);
await page.waitFor(20000);
const path = `fullPage.pdf`;
pdf = await page.pdf({
path,width: 1560 + 'px',height: 7500 + 'px',scale: 1,displayHeaderFooter: false,margin: 'none',printBackground: true,});
return pdf;
我正在使用"puppeteer": "^2.1.1"
下面是问题的图片。
有人可以帮忙吗?
解决方法
从-webkit-filter: opacity(1) !important;
方法的内容中删除addStyleTag
解决了我的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。