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

我正在使用PDFKit和NodeJSdynamic生成PDF文档,并且我想将所述文档附加到电子邮件中。 在这一刻,我通过NPM使用了Mandril-API。

我可以生成没有问题的PDF,并通过浏览器显示它:

doc.pipe(res);

我可以发送电子邮件没有问题,但我已经无法获得正确的PDF内容失败。 我相当肯定,我是99%的方式 – 但我失去了一些东西。 我已经做了大量的阅读和testing使用谷歌/ StackOverflow等,但我卡住了。

我得到的内容是,当我做一个base64解码我得到:

%PDF-1.3%7 0 obj << /预测15

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

–_ av-Ti-H6i8tBBHL4BgoXnyC2Q Content-Type:application / pdf Content-Transfer-Encoding:base64 Content-Disposition:attachment; 文件名= “mytestPDF.pdf”

PDF1370obj / Predictor15 / COLORS1 / BitsPerComponent8 / Columns100e ndobj60obj /types/ 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内容的方式是创build一个名为缓冲区的数组,然后:doc.on('data',buffers.push.bind(buffers));

我假设我需要添加/ n或/ r等等,但是我一直在使用NodeJS和AngularJS一个月左右,现在我知道几乎所有我做错的事情是因为我太过分了,使问题复杂化…所以我转向你们,希望有一个简单的方法来将我用PDFKit创build的新PDFDocument的内容附加到使用NodeJS的电子邮件中。

预先感谢你…请原谅我的散漫,但我大约8小时前开始这个(现在是我的时间上午3:25)。 🙂

我最近有一个问题,通过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); }); }); 

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