jsPDF 不完整或损坏的 PNG 文件
jsPDF Incomplete or corrupt PNG file
添加常规的png图像对于jsPDF没有问题,但是现在我从服务器发送生成的图像,浏览器控制台在渲染PDF文件时显示此错误:
不完整或损坏的PNG文件
显然,图像并非不完整或损坏,因为我可以看到服务器的响应并且图像很好。同样为了避免在图像准备好之前渲染 pdf 文件,我检查了保存图像值变量(如果未定义/null)的文件。我的图像格式是
var image = "data:image/png;base64,iVBORw0KGgoAAAANSUh...等";
可能是什么问题?
编辑:我将图像的格式更改为jpg,并显示此错误
Supplied data is not a JPEG
如果我使用此库jspdf.plugin.addimage.js
则图像会正确呈现,但 PNG 图像不会正确呈现。
编辑:2 我做了一个修改jspdf.plugin.addimage.js
文件函数的解决方案 addImage
,我只是更改了函数的名称并将那些生成的图像添加到具有该功能的 PDF 中,因为 jspdf.min.js
的版本对同一函数具有相同的名称,这样它就不会覆盖我可以使用的函数来处理普通图像和服务器生成的函数。
发生这种类型的错误是因为当您发送到 jsPDF 时图像尚未完成加载,请使用 onLoad 事件检查图像是否完全加载。 例如 -
/* where src = full image url
callback = is callback function
outputFormat = image output format */
function toDataUrl(src, callback, outputFormat) {
var img = new Image();
img.setAttribute('crossOrigin', 'anonymous');
img.onload = function () {
/*image completely converted to base64string */
var canvas = document.createElement('CANVAS');
var ctx = canvas.getContext('2d');
var dataURL;
canvas.height = this.height;
canvas.width = this.width;
ctx.drawImage(this, 0, 0);
dataURL = canvas.toDataURL(outputFormat);
/* call back function */
callback(dataURL);
};
img.src = src;
if (img.complete || img.complete === undefined) {
img.src = appConfig.config.dummyImage;
img.src = src;
}
}
function callbackBase64(base64Img)
{
/*base64Img contains full base64string of image */
console.log(base64Img);
}
调用上面的函数并获取 base64 图像字符串 -
toDataUrl('http://example1.com/image1.jpg', callbackBase64(base64Img), "image/png");
相关文章:
- 将图像的来源与 png 文件进行比较
- 使用PHP将png/svg导出为单个png文件
- 节点画布:将PNG文件输出为交错/逐行扫描
- iPhone应用程序或移动野生动物园的动画PNG文件的替代方案,目标是模拟短视频剪辑的即时播放
- jsPDF 不完整或损坏的 PNG 文件
- CasperJS屏幕截图未将图像渲染为png文件
- 将图像存储到 png 文件中
- SVG文件 :如何使用Inkscape将PNG文件转换为SVG文件后获取路径标记数据
- 从Base64字符串转换为PNG文件
- 如何将HTML转换为HTML5画布并下载为PNG文件
- Amchart-导出到PNG文件
- 如何将.PNG文件转换为可以存储在mysql中并通过CSS调用的源代码;png”;
- WebGL仅呈现/加载某些PNG文件
- 使用grunt img优化png文件
- 最好的方式来对齐图像png文件左下角
- 我如何合并两个透明的png文件在科尔多瓦
- 如何创建一个PNG文件在任何脚本语言的web使用
- 如何将javascript按钮添加到PDF中,将数据保存到(png)文件
- 是自动创建为PNG文件的HTML Canvas标记的内容
- 如何将带有图像的画布保存为PNG文件