Tengo un proyecto Laravel que usa JSPDF para generar un archivo PDF desde un DIV y descargarlo
Cuando lo probé en iPhone Safari descubrí que no funciona
Busqué el motivo y descubrí que puedo usar output('dataurl') en su lugar
Cuando reemplacé save() con output(), ahora no funciona en todas las plataformas
El código:
$('#print').click(async function (e) { e.preventDefault(); const pdf = new jsPDF('p', 'mm', 'a4'); const imgWidth = 208; const position = 0; let page1 = document.querySelector('#report-one'); let page2 = document.querySelector('#report-two'); const [imgPage1, imgPage2] = await Promise.all([html2canvas(page1), html2canvas(page2)]); // Process first image let imgHeight = imgPage1.height * imgWidth / imgPage1.width; let contentDataURL = imgPage1.toDataURL('image/jpeg'); pdf.addImage(contentDataURL, 'PNG', 0, position, imgWidth, imgHeight); pdf.addPage(); // Process second image imgHeight = imgPage2.height * imgWidth / imgPage2.width; contentDataURL = imgPage2.toDataURL('image/jpeg'); pdf.addImage(contentDataURL, 'PNG', 0, position, imgWidth, imgHeight); pdf.output('dataurl'); });