nodejs pdfkit将动态生成的PDF附加到电子邮件(Mandrill-API)

use*_*688 5 javascript email node.js node-pdfkit

我正在使用PDFKit和NodeJS动态生成PDF文档,我想将所述文档附加到电子邮件中.此刻我正在通过NPM使用Mandril-API.

我可以毫无问题地生成PDF并通过以下方式在浏览器中显示:

doc.pipe(res);

我可以毫无问题地发送电子邮件,但我在获取正确的PDF内容方面失败了.我相当肯定我99%的方式 - 但我错过了一些东西.我已经使用Google/StackOverflow等进行了大量的阅读和测试,但我陷入困境.

我得到的内容是,当我进行base64解码时,我得到:

%PDF-1.3%7 0 obj <</Predictor 15

我设法让我的PDF附件的有效大小为445KB,但这是电子邮件的内容:

--_ av-Ti-H6i8tBBHL4BgoXnyC2Q内容类型:application/pdf Content-Transfer-Encoding:base64 Content-Disposition:attachment; 文件名= "mytestPDF.pdf"

PDF1370obj/Predictor15/COLORS1/BitsPerComponent8/Columns100e ndobj60obj /类型/ x对象/亚型/图像/ BitsPerComponent8/WIDT H100/Height19 /过滤/ FlateDecode/DecodeParms70R/ColorSpace中/ I ndexed/DeviceRGB25580R/Length1751streamxdSSNEhGIRTRkWbY/nHaO MJln7t + vv89ylF111PlYNB9Nm6e9DENsd9FxLFUbOjrgt + ErRgWtj9vPCTBH oohMHl9oZ7IdpC/hxusjTHFFMcxhwIxPlbNorOB + bH8exrrA1DUnzKzq/UXI xT456nxtB59fQNiIrBT2apETJZieZvltpeThrObiZ4ydtY0koKJ2Epb940A1 iXyehONQVXiZr8jRP/NJ3bmjHA0sygAou4Q =

虽然我已经搞砸了几个小时,但我最好的预感是我的PDF内容中有换行/换行错误.我获取PDF内容的方法是创建一个名为buffers的数组,然后:doc.on('data',buffers.push.bind(buffers));

我想我需要添加/ n或/ r等...但我已经和NodeJS和AngularJS一起工作了一个月左右,而且我知道几乎所有我做错了是因为我结束了 - 使问题变得复杂......所以我向大家求助,并希望有一种简单的方法可以将我使用PDFKit创建的新PDF文档中的内容附加到使用NodeJS的电子邮件中.

提前谢谢你......请原谅我的漫无边际,但我大约8小时前开始这个(现在是我的时间凌晨3:25).:)

mra*_*xus 9

我最近遇到了同样的问题,通过node.js发送电子邮件pdf附件到mandrill,但设法解决它.

这是我做的:

    generatePdf(inputData, function (err, doc) {
        if (err) return callback(err);

        var bufferChunks = [];

        doc.on('readable', function() {
            // Store buffer chunk to array
            bufferChunks.push(doc.read());
        });
        doc.on('end', function() {

            var pdfBuffer = Buffer.concat(bufferChunks),
                pdfBase64String = pdfBuffer.toString('base64');

            // This string is perfectly ok to use as an attachment to the mandrillAPI
            sendMandrillEmailWithAttachment(pdfBase64String);
        });
    });
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助.Ping如果你需要额外的帮助=)