Laravel JSPDF output() not working but save() is working

I have Laravel project that use JSPDF to generate PDF file from a DIV and download it

When I tried it on iPhone Safari I found that it’s not working

I searched about the reason and I found that I can use output(‘dataurl’) instead

When I replaced the save() with output(), it’s not working on all platforms now

The code:

$('#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');
});