我需要通过服务器端创建PDF文件。我有一个带有HTML的pug文件,它可以按预期工作(格式和内容都很完美)。另外,我有一项服务,可以从pug文件中获取字符串中的HTML。问题是我在使用node-html-pdf库生成PDF时遇到了问题。
let config = {
format: 'Letter',
orientation: 'portrait',
type: 'pdf'
};
pdf.create(htmlConverted, config).toBuffer((errConvertingHtml, buffer) => {
if (errConvertingHtml) {
this.logError(errConvertingHtml, null, `${this.className} createPDF`);
return this.returnResult(errConvertingHtml, false, null);
} else {
const filename = 'Invoice' + '.pdf';
const base64PDF = buffer.toString('base64');
const email = new models.EmailModel();
email.to.email = order.email;
email.to.name = order.full_name;
email.template_id = subscriptionTemplate.value;
email.dynamic_template_data = dynamic_data;
email.attachments = [
{
filename: filename,
content: base64PDF,
type: 'application/pdf',
disposition: 'attachment'
}
];
let mailIntegration = new integrations.MailIntegration();
mailIntegration.SendNow(email);
}
});
此代码有效,但是电子邮件中的PDF附件格式不正确,非常小。我可以使用其他库或其他实现,对此没有任何问题。关于此代码有任何建议或建议吗?我一直在寻找另一个库,但是老实说,我还没有找到将HTML字符串转换为PDF,然后将PDF转换为缓冲区,然后转换为base64的方法。任何帮助都受到好评。谢谢,非常感谢您的回复。