其中引入 pdf-poppler 但注意这个包6年没更新了 建议 node-poppler 哪个其实都不太好用
另外 pdf-image这个包不好鼓捣 别在这个包上浪费时间了 现在一些博客上的使用pdf-image将pdf转image不成功
const pdfPoppler = require('pdf-poppler');
···
fs.writeFile(path.resolve(getExePath() + `/temporary/${name}.pdf`), pdfData, (err) => {
const pdfPath = path.resolve(getExePath() + `/temporary/${name}.pdf`)
const outdir = path.resolve(getExePath() + `/temporaryImage`)
console.log(pdfPath,outdir,'999')
const opts = {
format: 'jpeg',
out_dir: outdir,
out_prefix: `${name}`,
page: null,
scale: 4096
};
console.log(pdfPoppler,'pdfPoppler')
pdfPoppler.info(pdfPath, opts).then(res => {
const pages = Number(res.pages)
pdfPoppler.convert(pdfPath, opts)
.then(() => {
console.log('PDF转换完成');
// 读取图片文件
const list = []
for (let index = 0; index < pages; index++) {
let imageFile = fs.readFileSync(path.join(outdir, `${name}-${index+1}.jpg`), { encoding: null });
// 将图片文件编码为 Base64
list[index] = Buffer.from(imageFile).toString('base64')
}
// 输出
if (err) {
logger.error("图像模板打印生成pdf失败,", err)
console.timeEnd('耗时')
event.reply('pdfData' + params.time, {
data: {
state: '-9999',
msg: '生成pdf失败'
}
})
} else {
logger.info("图像模板打印生成pdf成功:", 'success')
event.reply('pdfData' + params.time, {
data: list,
pdfUrl: pdfUrl
})
}
console.log(base64mage,'base64');
})
.catch((err) => {
console.error(err);
});
})
});