这是create pdf file的PDFMake的代码片段之一:
var pdfDoc = printer.createPdfKitDocument(docDefinition);
pdfDoc.pipe(fs.createWriteStream('pdfs/absolute.pdf'));
pdfDoc.end();
这是attachment option in NodeMailer之一:
{
// stream as an attachment
filename: 'text4.txt',
content: fs.createReadStream('file.txt')
}
我能够创建pdf并将其保存到目录中的文件中,并将该保存的文件附加到电子邮件中,但是我想直接将pdf的输出发送到电子邮件的附件内容,而不将pdf输出保存到文件。
我试图了解nodejs管道和流功能,但不了解它们是否满足我的要求。我认为应该可以通过流和管道实现,但不知道如何实现。
我想防止将pdf输出保存到文件,因为使用创建pdf文件和发送电子邮件的功能可以有多个用户。可能存在一个用户创建的pdf文件将被另一用户覆盖的情况。
最佳答案
您可以代替管道,将整个pdfdoc
传递给附件
var pdfDoc = printer.createPdfKitDocument(docDefinition);
pdfDoc.end();
接着:
attachments: {
// stream as an attachment
filename: 'text4.pdf',
content: pdfDoc
}