我正在使用pdfMake创建一个pdf并将其用作电子邮件附件。现在,我只是想创建一个二维码,并将其放在新创建的pdf中。
我正在使用qr图像生成二维码。
以下是我迄今为止创建pdf的内容(使用SendGridv3API进行邮件传递(。
const docDefinition = {
pageSize: 'A4',
pageMargins: [40, 60, 40, 60],
content: [
'First paragraph',
'Another paragraph, this time a little bit longer to make sure, this line will be divided into at least two lines',
{
image: qr.image(object.uid),
width: 400
},
]
};
let pdf;
pdfMake.createPdf(docDefinition).getBase64(function (encodedString) {
pdf = encodedString;
...
'attachments': [{
'filename': 'attachment.pdf',
'type': 'application/pdf',
'content': pdf
}],
...
}
我得到的错误是:
Error getting event document: invalid image, images dictionary should contain dataURL entries (or local file paths in node.js)
如果我删除image属性,只发送一些示例文本,一切都会正常。所以我知道PDF正在生成,我只是没有正确设置QR图像。
如果可能的话,我不想保存图像——我想生成、附加和发送。
非常感谢您的任何建议!
希望这能帮助其他人,以下是我的想法。
const qr_svg = qr.imageSync(object.uid, { type: 'png' });
const qr_str = 'data:image/png;base64,' + qr_svg.toString('base64');
const docDefinition = {
pageSize: 'A4',
pageMargins: [40, 60, 40, 60],
content: [
'First paragraph',
'Another paragraph, this time a little bit longer to make sure, this line will be divided into at least two lines',
{
image: qr_str,
width: 400
},
]
};
事实上,我把图片错误地传给了pdf。所有信用都归于Tim Krins