为什么jspdf在移动Web应用程序上不起作用

时间:2019-04-03 06:38:00

标签: angular6 jspdf

角度版本7,jspdf 1.5.3

我已经使用angular7开发了一个webapp,它也可以在移动浏览器中使用。在按钮上单击,我正在使用jspdf生成pdf,但它不适用于任何移动版本。尽一切可能尝试。提醒我曾经在移动设备上调试过,请为此提供帮助

<button (click)="generatePDF()" class='btn btn-primary pdf'><i class="far fa-file-pdf"></i>Generate PDF</button>



public generatePDF() {
    var data = document.getElementById('contentToConvert');
    var data_width = document.getElementById('contentToConvert').clientWidth;
    html2canvas(document.querySelector('#contentToConvert')).
        then(canvas => {
            var imgWidth = data_width;
            var imgHeight = canvas.height * imgWidth / canvas.width;
            const contentDataURL = canvas.toDataURL('image/jpg', 0.5);
            let pdf = new jspdf('p', 'pt', [imgWidth + 10, imgHeight + 10], true);
            pdf.addImage(contentDataURL, 'PNG', 5, 5, imgWidth, imgHeight, undefined, 'FAST');
            let mydate = new Date()
            let month = mydate.getUTCMonth() + 1;
            let formatedDate = mydate.getUTCDate() + "_" + month + "_" + mydate.getFullYear();
            let fileName = formatedDate + '_' + 'Calendario_' + 'Darzalex_' + this._pdetails.Tratamientos
            pdf.save(fileName + ".pdf");
        });
}

1 个答案:

答案 0 :(得分:0)

这里您要转换为jpeg:

        const contentDataURL = canvas.toDataURL('image/jpg', 0.5);

在这里,您将图像添加为PNG:

        pdf.addImage(contentDataURL, 'PNG', 5, 5, imgWidth, imgHeight, undefined, 'FAST');

如果您仍然遇到问题,建议您发布有关所获得结果的更多详细信息。如果图像未显示,那么我认为对齐以上图像格式(所有JPEG或所有PNG)可能会解决该问题。如果未保存文件,请查看filesaver.js或应用程序的上下文。