我的目的是在单击按钮时将HTML页面转换为PDF
我通过如下方式尝试了它: 1.html2Canvas + jspdf
html2canvas(data).then(canvas => {
const contentDataURL = canvas.toDataURL('image/png');
}
我得到的输出是
contentDataUrl = data:,
或者我这样写:
public captureScreen() {
var data = document.getElementById("print");
html2canvas(data).then(canvas => {
var imgWidth = 208;
var pageHeight = 295;
var imgHeight = canvas.height * imgWidth / canvas.width;
var heightLeft = imgHeight;
const contentDataURL = canvas.toDataURL('image/png')
let pdf = new jspdf('p', 'mm', 'a4'); // A4 size page of PDF
var position = 0;
pdf.addImage(contentDataURL, 'PNG', 0, position, imgWidth, imgHeight)
pdf.save('MYPdf.pdf'); // Generated PDF
});
}
我遇到类似以下错误:
Uncaught (in promise): Error: Supplied Data is not a valid base64-String jsPDF.convertStringToImageData
Error: Supplied Data is not a valid base64-String jsPDF.convertStringToImageData
at Object.x.convertStringToImageData
我需要一种有效的方法将角HTML页面转换为PDF,并建议我是否还有其他更好的方法
注意:我在该html页面中使用了Angular材质和嵌套组件。