通过Puppeter生成时,PDF末尾缺少内容
我试图通过发送URL到Puppeter来生成PDF。我给了page.pdf方法特定的高度和宽度作为选项。我能够得到PDF的确切高度,但最后缺少一些内容。这只会发生在高度更高的PDF上 下面是我的代码:通过Puppeter生成时,PDF末尾缺少内容,pdf,puppeteer,chromium,Pdf,Puppeteer,Chromium,我试图通过发送URL到Puppeter来生成PDF。我给了page.pdf方法特定的高度和宽度作为选项。我能够得到PDF的确切高度,但最后缺少一些内容。这只会发生在高度更高的PDF上 下面是我的代码: let pdf = {}; const puppeteerArguments = []; puppeteerArguments.push('--disable-web-security', '--allow-running-insecure-c
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;
我正在使用“木偶演员”:“^2.1.1”
下面是该问题的图像
请找个人帮忙。删除
-webkit过滤器:不透明度(1)!重要的
通过addStyleTag
方法的内容解决了我的问题。如果你想得到一些答案,你需要在你的问题上做更多的工作。至少考虑发布加载内容的代码并将其转换成PDF。用代码、TQ编辑我的问题,用于提示“SavavaVoVIN <代码> Goto < /Cord> >考虑使用<代码> NETWorkIDL0;code>networkidle2不保证页面完全加载;height
评估有一些神奇的数字200,高度有点奇怪,需要调试;在pdf
中,您设置了存储文档的路径,同时返回文档的二进制文件,为什么;您只有一个页面的范围,但您发布的屏幕截图显示了页面分隔符,所以至少有两个页面,是什么。我不认为有人给你提供了解决方案,这是你需要调试的东西。我建议将浏览器设置为headed模式,注释掉PDF转换部分,看看你的内容是如何加载的;使用dev工具获取容器的大小,并将其与计算的结果进行比较。基本上正确地调试它,直到PDF转换,并在查看您正在设置的PDF
选项之后。只需花点时间调试代码。致以最诚挚的问候,@slavavivanov感谢您的回复我调试了代码,在devtools中它给了我正确的高度。忽略以上代码中的高度计算并返回pdf
。我在浏览器中检查了页面的高度,并在pdf选项
中手动将高度添加到上述代码中。通过这一点,我可以得到给定高度的PDF,但内容是在最后丢失。我发布的图像有小部件,你看到的是小部件结束,而不是分页符。