我正在尝试将标题部分打印到生成的 PDF 的每一页。我还使用 pdf-merger 将多个 PDF 合并在一起。现在,当我执行此代码时,生成的 PDF 包含多个文档,正如预期的那样。但是,Header
我添加的部分似乎只出现在作为完整 PDF 一部分的文档的第 2 和第 5 中。我无法通过查看我的代码来判断为什么会发生这种情况。我会假设Header
将添加到每个文档中。
第一个问题:为什么我会注意到自己的行为。了解这将帮助我知道要调整什么。第二个问题:如何调整此代码以便将其Header
添加到文档的每个页面?
这是我将选项传递给的部分page.pdf()
:
let doc = await page.pdf({
displayHeaderFooter: true,
format: "A4",
printBackground: true,
headerTemplate: '<span style="font-size: 30px; width: 50px; height: 50px; color:black; margin: 20px;">Header</span>',
});
这是完整的代码块:
let merger = new PDFMerger();
const browser = await puppeteer.launch();
const page = await browser.newPage();
let recordNum = 1;
for (let r of recordsArr) {
try {
let signatures = [];
signatures = await signatureService.getSignatures({}, [r.guid]);
if (signatures.length) r.signatureBase64Str = signatures[0].value;
} catch (err) {
console.log(err);
return Response.Failure("Error occurred while obtaining signature.", err);
}
r.logoBase64Str = base64Logo;
if (r.goalNotes.length) {
for (const [i, value] of r.goalNotes.entries()) {
value.number = i + 1;
}
}
try {
console.log(`processing record ${recordNum} of ${recordsArr.length}`);
const content = await compile(r);
await page.setContent(content);
await page.emulateMediaType("screen");
let doc = await page.pdf({
displayHeaderFooter: true,
format: "A4",
printBackground: true,
headerTemplate: '<span style="font-size: 30px; width: 50px; height: 50px; color:black; margin: 20px;">Header</span>',
});
merger.add(doc);
++recordNum;
} catch (error) {
console.log(error);
return Response.Failure("Unable to generate PDF by parameters passed.");
}
}