frappe.ready(() => { $("#export-as-pdf").click((e) => { export_as_png(e); }) }); const export_as_pdf = (e) => { var formData = new FormData(); //Push the HTML content into an element formData.append("html", $("#certificate-card").html()); var blob = new Blob([], { type: "text/xml"}); formData.append("blob", blob); var xhr = new XMLHttpRequest(); xhr.open("POST", '/api/method/lms.lms.doctype.lms_certificate.lms_certificate.get_certificate_pdf'); xhr.setRequestHeader("X-Frappe-CSRF-Token", frappe.csrf_token); xhr.responseType = "arraybuffer"; xhr.onload = function(success) { if (this.status === 200) { var blob = new Blob([success.currentTarget.response], {type: "application/pdf"}); var objectUrl = URL.createObjectURL(blob); //Open report in a new window window.open(objectUrl); } }; xhr.send(formData); } const export_as_png = (e) => { let button = $(e.currentTarget); button.text(__("Exporting...")); html2canvas(document.querySelector('#certificate-card'), { scrollY: -window.scrollY, scrollX: 0 }).then(function(canvas) { let dataURL = canvas.toDataURL('image/png'); let a = document.createElement('a'); a.href = dataURL; a.download = button.attr("data-certificate-name"); a.click(); }).finally(() => { button.text(__("Export")) }); }