如何解决Puppeteer 生成 PDF 时不加载本地存储的图像
我正在尝试在 Electron 应用程序中使用 Puppeteer 和 Handlebars 生成 PDF。但是图像没有显示在 .PDF 文件中,我尝试使用无头模式进行调试,但没有发现任何有用的东西。
我的文件夹结构是:
+-- pdf_template
| +-- generatePDF.js
| +-- template.html
| +-- template.css
| +-- logo.png
| +-- bg.png
生成PDF.js:
try {
(async () => {
var dataBinding = {
total: 123456,};
var templateHtml = fs.readFileSync(
path.join(
process.cwd(),'/app/pages/pdf_template/template.html'
),'utf-8'
);
var template = handlebars.compile(templateHtml);
var finalHtml = template(dataBinding);
var options = {
path: 'report.pdf',printBackground: true,format: 'A4',};
const browser = await puppeteer.launch({
args: ['--no-sandbox'],headless: true,});
const page = await browser.newPage();
await page.goto(
`data:text/html;charset=UTF-8,${encodeURIComponent(finalHtml)}`,{
waitUntil: ['domcontentloaded','networkidle0','load','networkidle2'],}
);
await page.addStyleTag({
path: __dirname + '/node_modules/bootstrap/dist/css/bootstrap.min.css',});
await page.addStyleTag({
path: __dirname + '/app/pages/pdf_template/template.css',});
await page.emulateMedia('screen');
await page.pdf(options);
await browser.close();
console.log('Done: PDF is created!');
})();
} catch (err) {
console.log('ERROR:',err);
}
template.html:
<!DOCTYPE html>
<html>
<head>
<mate charest="utf-8" />
<title>Report</title>
</head>
<body>
<div class="row" id="header">
<div class="col" id="logo-box">
<img
src="logo.png"
id="logo"
/>
</div>
<div class="col-8">
...
</div>
...
</body>
</html>
模板.css
body {
background-image: url('bg.png');
background-size: cover;
width: 21cm;
height: 29.7cm;
padding: 15mm;
margin: 0;
}
HTML 和 CSS 中的图像均未显示。我错过了什么吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。