Estoy tratando de descargar cv como pdf al hacer clic en el botón en mi generador de cv usando JS, pero desafortunadamente, la función en lugar de llamarse al hacer clic en el botón se llama tan pronto como se carga la página. Probé algunas otras formas, incluida la función de flecha y el atributo onclick del botón, aunque después de eso, la descarga comienza con el clic del botón, pero el pdf resulta estar vacío.
Código: HTML:
<div class="container profile-box" id="f"> <!-- Code of whole cv template --> </div> <div class="col-md-12 text-center"> <button type="button" class="btn btn-primary" id="pdf" >Download Pdf</button> </div>
JS:
var btnpdf=document.getElementById("pdf"); async function generatepdf(){ var downloading=document.getElementById("f"); let width1 = downloading.offsetWidth; let height1 = downloading.offsetHeight; var doc=new jsPDF('p','pt'); await html2canvas(downloading,{ allowTaint:true, useCORS:true, width:width1, height:height1 }).then((canvas)=>{ //canvas convert to png doc.addImage(canvas.toDataURL("image/png"),'PNG',10,10); }) doc.save("cv.pdf"); } btnpdf.addEventListener("click",generatepdf());
Esto funciona para mi.
¿Qué error estás recibiendo?
¿Incluiste el jspdf?
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.min.js"></script>