angular - jspdf在图像加载之前保存文档
问题描述
我正在尝试将多个大base64
图像保存到一个pdf
文件中
exportPdfv3p3(imgPath:string, x:number, y:number, width:number, height:number)
{
var pdfFile = this.pdfItem;
var localNumImagesLoaded = this.numImagesLoaded + 1;
var totalNumImages = this.numImages;
var img = new Image;
img.src = imgPath;
var pdfWidth = pdfFile.internal.pageSize.getWidth();
img.onload = function()
{
pdfFile.addImage(img, 'PNG', pdfWidth - width - 5, y, width, height);
console.log("localNumImagesLoaded",localNumImagesLoaded);
if (localNumImagesLoaded > totalNumImages)
alert("numImagesLoaded desync (too many images)");
else if (localNumImagesLoaded < totalNumImages){}
else // (localNumImagesLoaded == numImages)
{
// Total page number plugin only available in jspdf v1.0+
if (typeof pdfFile.putTotalPages === 'function')
{
pdfFile.putTotalPages(2);
}
// pdfFile.save("test.pdf");
pdfFile.output('datauri');
}
};
++this.numImagesLoaded;
console.log("this.numImagesLoaded", this.numImagesLoaded);
}
但是,img.onLoad
似乎是async
,导致pdfFile.output
过早运行并将空格输出到 pdf 中。
我如何知道图像何时实际加载并添加到 pdf 中,以便我可以在正确的时间保存 pdf 文件?
解决方案
推荐阅读
- flutter - 谷歌表格webapp在颤动中给出错误
- accessibility - CKEditor 4 Control 在使用键盘 Tab 键时无法将光标聚焦在工具栏按钮上,需要 508 辅助功能
- python - excepthook 不适用于 luigi.build
- javascript - React Localhost 从一个组件无响应
- react-native - 尝试添加自定义字体时出错““路径”参数必须是字符串类型”
- javascript - Telegraf:限制权限后,我的机器人不会授予回帖功能
- windows - 如何使用 IPv4 或 IPv6 正确配置 Wireguard 隧道和客户端配置文件?
- selenium - 我在 freesound.org 的 selenium 中进行自动化,但是当我点击登录按钮时出现问题,它会返回主页
- java - 杰克逊未能反序列化简单的 JSON
- vue.js - Vite: img src 别名在作为组件道具传递时不起作用