gpt4 book ai didi

javascript - 从 puppeteer PDF 中删除分页符?

转载 作者:行者123 更新时间:2023-12-04 04:05:39 25 4
gpt4 key购买 nike

我目前正在尝试查看是否有一种方法可以删除我的 puppeteer PDF 中的分页符,因为我当前 PDF 设置中的一些分页符以一种奇怪的方式切断了文本。我正在谈论的内容的屏幕截图:

Screenshot

我的 puppeteer 代码:

app.get("/:companyId/pdf", (req, res) => {
(async () => {
try {
const browser = await puppeteer.launch({ args: ['--no-sandbox'] });
const page = await browser.newPage();
const url =
process.env.WEBSITE_URL + `/${req.params.companyId}/report-internal`;
await page.goto(url, { waitUntil: "networkidle0" });
const buffer = await page.pdf({ format: "A4", printBackground: true });
res.type("application/pdf");
res.send(buffer);
browser.close();
} catch (error) {
console.error(error);
res.status(500).send("PDF cannot be generated.");
}
})();
});

是否可以使用 Puppeteer 生成一个长而连续的 PDF?那将是理想的。我尝试设置自定义 CSS 打印样式以防止在某些元素后分页,但到目前为止,我还没有成功。非常感谢任何帮助。

编辑:我找到了一个不是最漂亮但有效的临时修复程序。我必须在 page.pdf 函数中手动定义文档的宽度和高度,如下所示:

const buffer = await page.pdf({ printBackground: true, width: 800, height: 3800 });

如果有更好的解决方案,那就太棒了。但万一有 puppeteer 然发现了这一点,这对我有用。

最佳答案

我尝试做一个替代方法来检测滚动元素,这样当打印成 PDF 时您的页面就不会被 chop ,我希望这能如您所愿:

const puppeteer = require('puppeteer')
const url = 'https://en.wikipedia.org/wiki/COVID-19_pandemic'

;(async () => {
const browser = await puppeteer.launch({
headless: true,
defaultViewport: {
width: 1280,
height: 800
},
userDataDir: './temp'
})
const [page] = await browser.pages()
const pageResponse = await page.goto(url)
const scrollDimension = await page.evaluate( () => {
return {
width: document.scrollingElement.scrollWidth,
height: document.scrollingElement.scrollHeight
}
})
// const viewportSize = await page.evaluate( () => {
// return {
// width: Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0),
// height: Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0)
// }
// })
await page.setViewport({
width: scrollDimension.width,
height: scrollDimension.height
})
const bufferPDF = await page.pdf({
path: 'long.pdf',
printBackground: true,
width: scrollDimension.width,
height: scrollDimension.height
})
const exit = await browser.close()
})()

关于javascript - 从 puppeteer PDF 中删除分页符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62557421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com