我正在尝试使用 puppeteer
获取整页 PDF,我的代码是这样的,
但是结果是多个页面,高度等于页面的高度。
我该如何解决这个问题? TIA。
const puppeteer = require("puppeteer");
function sleep(ms) {
return new Promise(resolve => {
setTimeout(resolve, ms);
});
}
(async () => {
const browser = await puppeteer.launch({
headless: true
});
const page = await browser.newPage();
await page.goto("http://localhost:3000/longpage", {
waitUntil: "networkidle2"
});
let height = await page.evaluate(
() => document.documentElement.offsetHeight
);
console.log("Height", height);
await page.pdf({
path: "hni.pdf",
printBackground: true,
margin: "none",
height: height + "px"
});
await browser.close();
})();
最佳答案
page you linked使用 Bootstrap,它的集合中有以下规则(你可以找到它 here ):
@page{size:a3}
这会将页面的高度限制为 a3
的大小。
您可以从网站中删除规则(或完全使用 Bootstrap)或在调用 page.pdf
之前添加以下代码:
await page.addStyleTag({
content: '@page { size: auto; }',
})
关于javascript - Puppeteer 中的整页 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55610614/