gpt4 book ai didi

node.js - Jimp 及其缓冲区数据无法按预期使用 puppeteer 生成 PDF

转载 作者:行者123 更新时间:2023-12-02 10:49:55 28 4
gpt4 key购买 nike

我正在使用Jimp , puppeteer-full-page-screenshot & puppeteer 生成全页屏幕截图,但我从 Jimp 和 puppeteer-full-page-screenshot 获取的缓冲区数据在我的情况下不起作用(我从 puppeteer 获取的缓冲区数据,即 png2 im我的代码工作正常,但 png 生成错误。)

    const browser = await puppeteer.launch({ headless: true, timeout: 100000, 
ignoreHTTPSErrors: true, args: ['--no-sandbox', '--disable-setuid-sandbox']});
const page = await browser.newPage();
await page.setViewport({ width: 1780, height: 2180 });
await page.goto(current.url, { waitUntil: 'networkidle2' });
await page.waitFor(7000);

const png = await fullPageScreenshot(page);
console.log(png);
req.current.image = image.bitmap.data;

// const png2 = await page.screenshot({ fullpage: true });
// console.log(png2);
// req.current.image = png2;

为了生成pdf,我有以下内容

      doc.image(req.current.image, {
fit: [595.28, 841.89],
align: 'center',
valign: 'center'
})
.fillColor('blue')
.text('Date Created: ' + dt, 100, 30)
.underline(100, 22, 300, 27, { color: '#0000FF' });
doc.addPage();
}

Console.log of png

Jimp {
_background: 0,
bitmap:
{ data:
<Buffer ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ...
63816510 more bytes>,
width: 1780,
height: 8963 } }
png2

Console.log

      <Buffer 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 06 f4 00 00 08 84 08 06 00 00 00 7c 57 82 1b 00 00 00 01 73 52 47 42 00 ae ce 1c e9 00 00 20 00 ... 1457642 more bytes>

如果我使用 png2 它工作正常,但使用 png 我会收到以下错误:-

  Error handler:  Error: Unknown image format.
at Function.open(/media/root/EC783AF8783AC15E/node_modules/pdfkit/js/pdfkit.js:3820:13)
at PDFDocument.openImage
(/media/root/EC783AF8783AC15E/node_modules/pdfkit/js/pdfkit.js:3936:24)
at PDFDocument.image
(/media/root/EC783AF8783AC15E/node_modules/pdfkit/js/pdfkit.js:3852:22)

最佳答案

即使我使用 fullPage: true,Puppeteer 也不会生成全页屏幕截图

      await page.screenshot({ fullPage: true});

我们可以使用 puppeteer-full-page-screenshot 生成全页截图和 Jimp,就我而言,我们从 Jimp 获得的缓冲数据不起作用,我用它修复了:-

      png.getBuffer('image/png', (err, Buff) => {
req.current.image = Buffer;
});

关于node.js - Jimp 及其缓冲区数据无法按预期使用 puppeteer 生成 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59945641/

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