我浏览HTML并将其转换为Canvas。
for (const element of htmlData) {
var input = document.getElementById(element);
allPromises.push(html2canvas(input));
}
在下一步中,我将遍历我的Promises数组,尝试将画布裁剪成特殊大小,并使用jsPDF将其写入PDF。
Promise.all(allPromises).then((response) => {
response.forEach((input) => {
var croppedImage = cropImg(input);
imgData = croppedImage.toDataURL('image/jpeg', 1.0);
insertImg(imgData, imgWidth_mm, imgHeight_mm);
}
}
我用于裁剪的功能看起来像:
function cropImg(image) {
var ctx = image.getContext('2d');
ctx.drawImage(image, 20, 20, 50, 50, 0, 0, 50, 50);
return ctx;
}
不幸的是,我得到了错误消息:croppedImage.toDataURL不是一个函数.toDataURL
函数似乎无法处理我提供给它的画布的原始上下文。有什么建议吗?如果我不裁剪画布,一切都很好。
代码是正确的,只是裁剪的值是错误的。
编辑:有些事情是对的。我必须通过return image
传递图像