почему jspdf не работает в мобильном веб-приложении - PullRequest
0 голосов
/ 03 апреля 2019

angular version 7, jspdf 1.5.3

У меня есть веб-приложение, использующее angular7, которое также можно использовать в мобильном браузере.при нажатии кнопки я генерирую PDF, используя jspdf, но он не работает ни в одной мобильной версии.попробовал всеми возможными способами.предупреждение, которое я использовал для отладки в мобильном телефоне, пожалуйста, помогите мне с этим

<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 голосов
/ 03 июня 2019

Здесь вы конвертируете в JPEG:

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

И здесь вы добавляете изображение, как будто оно было PNG:

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

Если у вас все еще есть проблемы, я предлагаю опубликовать более подробную информацию о результатах, которые вы получаете.Если изображение не отображается, я думаю, что выравнивание форматов изображения выше (все JPEG или все PNG) может исправить это.Если файл не сохраняется, посмотрите на filesaver.js или контекст вашего приложения.

...