Estoy tratando de generar un PDF desde un componente React . En mi escenario, es una tabla MaterialUI pero podría ser cualquier cosa. El problema al que me enfrento no es generar el PDF, sino el propio PDF producido, que es demasiado pesado e inutilizable .
Tengo una función como esta:
createPdf = async (html: HTMLElement, pdfName: string = "report.pdf") => { const doc = new jsPDF("p", "pt", "a4", true); await doc.html(html, { margin: 10, html2canvas: { scale: 0.65 }, }); doc.save(pdfName); return doc.output("blob"); };Inserto un HTMLElement que es el contenido DOM para mi componente React y genera el PDF correctamente. Sin embargo, este pdf es muy grande y extremadamente lento para cargar. Tenga en cuenta que tengo un i9 con 32 GB de RAM y tarda fácilmente 15 segundos en procesar una página del pdf ...
Inicialmente, estaba generando un pdf de 150 MB , pero luego configuré comprimido en verdadero y ahora tiene alrededor de 600 KB . Eso cambia el tamaño pero no mejoró el rendimiento de alguna manera. He probado varias computadoras y navegadores y he jugado con las opciones para html2canvas y nada parece arreglar esto.
¿Alguien tiene alguna idea sobre esto?
Gracias por adelantado.