PDFKit:PNG的未知图像格式错误
PDFKit: Unknown image format error for PNG
我在浏览器中使用PDFKit的预构建版本,当尝试添加PNG时,我收到以下错误:
Uncaught Error: Unknown image
PDFImage.open format.util.js:546
module.exports.image deflate.js:773
img.onload PDFrenderer.js:195
我正在服务器上将我的图像转换为PNG(将它们裁剪成圆形),服务器返回的图像的mime类型为"images/PNG"。我不确定我用来将PNG转换为ArrayBuffer的方法是否不正确。
以下是我用来获取PNG并将其转换为ArrayBuffer的代码:
var img = new Image, ctxData;
img.onError = function () {
throw new Error('Cannot load image: "' + url + '"');
}
img.onload = function () {
var canvas = document.createElement('canvas');
document.body.appendChild(canvas);
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0);
ctxData = canvas.toDataURL('image/png').slice('data:image/png;base64,'.length);
ctxData = atob(ctxData);
document.body.removeChild(canvas);
var buffer = [];
for (var i = 0, l = ctxData.length; i < l; i++) {
buffer.push(ctxData.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)
l |= this[offset + 1];
return val;
}
}
pdf.image(buffer);
}
img.src = url;
当这条线从更改时,这对JPEGs来说很好
ctxData = canvas.toDataURL('image/png').slice('data:image/png;base64,'.length);
至
ctxData = canvas.toDataURL('image/jpeg').slice('data:image/jpeg;base64,'.length);
然而,我需要能够通过PNG,这样我就可以放置我可以在任何背景上放置圆形图像。
我还尝试过传递完整的url(例如http://mysite.dev/userimages/1234/roundavatar.png'),但是我随后出现了以下错误:
Uncaught TypeError: undefined is not a function
PDFImage.open util.js:535
module.exports.image deflate.js:773
有人通过浏览器成功地将PNG添加到PDFkit中吗?如果是,你使用了什么方法?
我找到了一个如下的解决方案https://github.com/devongovett/pdfkit/blob/master/lib/image.coffee只需确保你的png文件的名字以大写结尾。png,它对我有用。
相关文章:
- 以 HTML 格式预加载图像
- 单击按钮并将其下载为图像格式时,如何使用引导模式弹出窗口显示D3图表
- 使用年、月、日期、小时、秒格式每分钟刷新一次图像
- 防止Javascript注入(但保留文本格式和图像)
- 将鼠标悬停在图像上,图像的不透明度和图像下方标题的颜色会发生变化..同样,当标题变成两行时,它会破坏格式
- html5中的CANVAS支持哪些图像格式
- PDFKit:PNG的未知图像格式错误
- 从单选按钮中获取值以选择 html 格式的图像
- 如何在Raphael paper.image中嵌入Base64图像格式
- 在javascript中显示不同的图像格式
- 以代码格式下载图像
- 图像属性格式不正确
- 图像未在追加时以 html 格式呈现
- SVG图像格式
- 将html页面的元素保存为图像格式
- 通过数据识别图像格式
- 如何检查是否上传了某些图像格式
- 如何下载画布为PNG图像格式,而不是二进制文件
- 在multier文件上传器中验证JS中的多个图像格式
- 嵌入所有流行的图像格式- jquery/javascript