我正在使用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 Content-Type: application/pdf Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="mytestPDF.pdf"
PDF1370obj/Predictor15/Colors1/BitsPerComponent8/Columns100endobj60obj/Type/XObject/Subtype/Image/BitsPerComponent8/Width100/Height19/Filter/FlateDecode/DecodeParms70R/ColorSpace/Indexed/DeviceRGB25580R/Length1751streamxdSSNEhGIRTRkWbY/nHaOMJln7t+vv89ylF111PlYNB9Nm6e9DENsd9FxLFUbOjrgt+ErRgWtj9vPCTBH oohMHl9oZ7IdpC/hxusjTHFFMcxhwIxPlbNorOB+bH8exrrA1DUnzKzq/UXI xT456nxtB59fQNiIrBT2apETJZieZvltpeThrObiZ4ydtY0koKJ2Epb940A1 iXyehONQVXiZr8jRP/NJ3bmjHA0sygAou4Q=
虽然我已经在这个问题上折腾了数小时,但我的最佳猜测是我的PDF内容中存在换行符/新行错误。我获取PDF内容的方式是创建一个名为buffers的数组,然后:doc.on('data',buffers.push.bind(buffers));
我假设我需要添加/n或/r等...但我使用NodeJS和AngularJS大约一个月,我知道我几乎所有错误都是因为我过于复杂化了问题...所以我求助于你们,希望有一种简单的方法,将我用PDFKit创建的新PDFDocument的内容附加到使用NodeJS发送电子邮件中。
我可以轻松生成PDF并通过以下方式在浏览器中显示它:
doc.pipe(res);
我可以顺利发送电子邮件,但是我无法正确获取PDF内容。我相当确定我已经完成了99%的工作,但缺少一些东西。我阅读了大量的Google / StackOverflow等内容并进行了测试,但卡住了。
当我进行Base64解码时,我得到的内容是:
%PDF-1.3 % 7 0 obj << /Predictor 15
我设法使我的PDF附件拥有445KB的有效大小,但这是电子邮件的内容:
--_av-Ti-H6i8tBBHL4BgoXnyC2Q Content-Type: application/pdf Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="mytestPDF.pdf"
PDF1370obj/Predictor15/Colors1/BitsPerComponent8/Columns100endobj60obj/Type/XObject/Subtype/Image/BitsPerComponent8/Width100/Height19/Filter/FlateDecode/DecodeParms70R/ColorSpace/Indexed/DeviceRGB25580R/Length1751streamxdSSNEhGIRTRkWbY/nHaOMJln7t+vv89ylF111PlYNB9Nm6e9DENsd9FxLFUbOjrgt+ErRgWtj9vPCTBH oohMHl9oZ7IdpC/hxusjTHFFMcxhwIxPlbNorOB+bH8exrrA1DUnzKzq/UXI xT456nxtB59fQNiIrBT2apETJZieZvltpeThrObiZ4ydtY0koKJ2Epb940A1 iXyehONQVXiZr8jRP/NJ3bmjHA0sygAou4Q=
虽然我已经在这个问题上折腾了数小时,但我的最佳猜测是我的PDF内容中存在换行符/新行错误。我获取PDF内容的方式是创建一个名为buffers的数组,然后:doc.on('data',buffers.push.bind(buffers));
我假设我需要添加/n或/r等...但我使用NodeJS和AngularJS大约一个月,我知道我几乎所有错误都是因为我过于复杂化了问题...所以我求助于你们,希望有一种简单的方法,将我用PDFKit创建的新PDFDocument的内容附加到使用NodeJS发送电子邮件中。
预先感谢您...请原谅我的啰嗦,但我大约在8个小时前开始写这篇文章(现在是我当地时间凌晨3:25)。
Buffer
和pdfBuffer
变量是什么意思? - 2dvisio