gpt4 book ai didi

javascript - 使用 puppeteer 配置 PDF 页面宽度

转载 作者:行者123 更新时间:2023-12-05 03:56:19 29 4
gpt4 key购买 nike

我正在尝试使用 puppeteer 生成 pdf,但生成的 pdf 宽度很大。我想要 pdf 在一页中显示所有内容,宽度必须为 4.8cm,其中页面高度可以是其内容所具有的任何长度。

我在pdf中添加了配置

{
path : filePath,
printBackground : true,
width : '4.8cm'
}

在页面中我添加了视口(viewport)配置

{
width : 136,
height : 842,
deviceScaleFactor : 1
}

但最终结果并没有改变

最佳答案

试试这个代码,如果它完美运行,就选择这个答案是正确的。

我在 page.pdf 方法中设置了缩放选项,以将原始打印的 PDF 缩放为缩放后的版本。所以这使得整个页面只适合一页。

const puppeteer = require('puppeteer')

const pageURL = 'https://stackoverflow.com/questions/59464250/configure-pdf-page-width-using-puppeteer'

const optionsPDF = {
path: 'print.pdf',
printBackground: true,
width: '4.8cm',
scale: 1,
preferCSSPageSize: false
}

;(async () => {
const browser = await puppeteer.launch({
headless: true,
devtools: false,
defaultViewport: {
width : 136,
height : 842,
deviceScaleFactor : 1
}
})
const [page] = await browser.pages()
await page.emulateMedia('screen')

await page.goto( pageURL, { waitUntil: 'networkidle0', timeout: 0 })

const height_weight_ratio = await page.evaluate( () => window.innerHeight / window.innerWidth)
const height = parseInt(optionsPDF.width) * height_weight_ratio
optionsPDF.scale = 1/height_weight_ratio

console.log('Printing PDF...')
await page.pdf(optionsPDF)

await browser.close()

})()

关于javascript - 使用 puppeteer 配置 PDF 页面宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59464250/

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