在浏览器中使用PDFkit,从链接插入图像
是否有一种简单的方法可以从URL中获取图像以放入PDFKit pdf?
我在浏览器中自动生成PDF。我想要包含一个图像,我有一个URL。问题是我在浏览器中生成PDF。由于我有从互联网上获得的URL,似乎应该有一种简单的方法将该图像转换为PDFKit可读的内容。
有没有办法让Javascript将图像URL转换为PDFKit可读的缓冲区?
我想要的是您希望以下命令执行的操作:
doc.image('.jpg')
提前致谢。我在网上找到的解决方案让您的服务器接收链接,并使用缓冲区进行响应。这是唯一的方法吗?或者有没有一种方式在浏览器中没有http发布?
回答如下:我通过AJAX检索图像作为base64编码的字符串,然后使用以下代码将base64编码的字符串转换为可用的缓冲区:
var data = atob(base64);
var buffer = [];
for (var i = 0; i < data.length; ++i)
buffer.push(data.charCodeAt(i));
buffer._isBuffer = true;
buffer.readUInt16BE = function(offset, noAssert) {
var len = this.length;
if (offset >= len) return;
var val = this[offset] << 8;
if (offset + 1 < len)
val |= this[offset + 1];
return val;
};
pdf.image(buffer);
另请参阅https://github/devongovett/pdfkit/issues/354#issuecomment-68666894,其中讨论了应用于字体的相同问题。