我有一个 node.js 应用程序,我在其中使用 pdfkit 生成 pdf 文档。我希望能够在 pdf 中包含来自 url 的图像。我无法将图像保存到文件系统,因为我的运行时环境是只读的,并且 pdf 工具包似乎可以从文件系统目录中找到要嵌入的图像。有没有办法可以使用 pdf 工具包中的 url 嵌入图像?
在这里。这个人修改了 pdfkit 以包含该功能。
PDFKit 现在支持将缓冲区doc.image
而不是文件名传递给方法。请参阅此提交。因此,您可以按照其他答案的建议进行操作,自己从 URL 下载图像,然后将缓冲区直接传递给 PDFKit,而不是先将其保存到文件中。
你可以使用http.get:
http.get('YOUR URL TO GET THE IMAGE').on('response', function(res)
res.setEncoding('binary');
res.on('data', function(chunk){
buffer += chunk;
});
res.on('end', function(){
fs.writeFile('PATH TO SAVE IMAGE', buffer, 'binary', function (err) {
if (err){
throw err;
}
doc = new PDFDocument({ size: 'LETTER or any other size pdfkit offer' });
doc.image('PATH TO SAVE IMAGE', 0, 0, { fit: [WIDTH, HEIGHT] })
.fontSize(10).text('text 1', 100, 170)
.fontSize(16).text('text 2', 60, 120)
}); //After file is download and was write into the HD will use it
}).end(); //EO Downloading the file