My intention is to convert a HTML page to PDF while clicking a button
I tried it by doing it like: 1.html2Canvas + jspdf
html2canvas(data).then(canvas => {
const contentDataURL = canvas.toDataURL('image/png');
}
And the output I'm getting is
contentDataUrl = data:,
and alternatively I wrote like this:
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
});
}
I'm getting an error like:
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
I need a valid approach to convert angular HTML page to PDF and also suggest me if any other better approaches
Note: I'm using Angular material and nested components in that html page.