Tengo un error súper extraño cuando uso html2Canvas para imprimir un PDF. Una vez que se llama a la función, inmediatamente arroja un error:
"807ms html2canvas: Error al encontrar el DIV en el documento clonado"
Al volver a llamar a la función, inmediatamente después, todo funciona como se esperaba. Esto SOLO ocurre en la compilación de producción de reaccionar, lo que hace que este problema sea difícil de depurar.
Función en cuestión:
async generateAllPdf(PDFStructure) { this.setState({ generatingPDF: true }) const doc = new jsPDF('p', 'mm', 'letter', true); let ids = []; for (let k = 0; k < PDFStructure.length; k++) { ids.push(PDFStructure[k].ref); } const length = PDFStructure.length; for (let i = 0; i < length; i++) { let percent = Math.floor((i / length)*100) + '%' this.handleProgress(percent) const chart = document.getElementById(ids[i]); // excute this function then exit loop await html2Canvas(chart, { scale: 3, useCORS: true }).then((canvas) => { const imgData = canvas.toDataURL('image/jpeg',0.5); //doc.addImage(canvas.toDataURL('image/jpeg'), 'JPEG', 10, 50, 200, 150); doc.addImage(imgData, 'JPEG', 0, 22.6, 216, 279.4, undefined, 'FAST'); if (i < (length - 1)) { doc.addPage(); } }); } this.setState({ generatingPDF: false }) doc.save("MCX-" + Moment().format('YYYY-MM-DD') + ".pdf"); }