导入pdf-lib库
npm install pdf-lib fs
具体代码
const { PDFDocument, StandardFonts } = require('pdf-lib');
const fs = require('fs');async function fillPdfTemplate(templatePath, outputPath, fieldData) {const templateBytes = await fs.promises.readFile(templatePath);const pdfDoc = await PDFDocument.load(templateBytes);const form = pdfDoc.getForm();for (const [fieldName, fieldValue] of Object.entries(fieldData)) {const field = form.getTextField(fieldName);if (field) {field.setText(fieldValue);}}const pdfBytes = await pdfDoc.save();await fs.promises.writeFile(outputPath, pdfBytes);
}// 使用示例
const templatePath = 'template.pdf'; // 模板文件路径
const outputPath = 'output.pdf'; // 输出文件路径
const fieldData = {'key': 'value', // 字段名和对应的值
};fillPdfTemplate(templatePath, outputPath, fieldData).then(() => {console.log('PDF 模板填充完成');}).catch((error) => {console.log('发生错误:', error);});
代码详解
首先
const templateBytes = await fs.promises.readFile(templatePath);
const pdfDoc = await PDFDocument.load(templateBytes);
const form = pdfDoc.getForm();
这三行表示读文件,并且读取pdf表单,之后在pdf的表单中寻找字段,之后填入字段
这里的Object.entries是将对象变成数组方便循环,也可以用for...in进行对象遍历
最后将数据存入新文件中
其他
pdf模板可以使用福昕pdf进行制作,百度一下都能查到