PDF, созданный с помощью jspdf, не откроется в Edge - PullRequest
0 голосов
/ 27 апреля 2020

Я создал PDF с jspdf и dom-to-image-more. Он отлично работает в Chrome и Microsoft Teams, последняя версия Adobe Illustrator в Creative Cloud прекрасно с этим справляется, но она не отображается в Edge. Он рендерит примерно половину, затем застревает.

Это не массивно - 4182 КБ Я также сбросил Edge на стандартное приложение для PDF в Windows 10 и выполнил ремонт на Edge. Нет радости Даже открытие в Adobe Illustrator и сохранение без редактирования слоев и оптимизация для быстрого отображения в Интернете не принесут никаких улучшений.

Я даже не уверен, что это просто ошибка Windows 10, но зная, что это поможет!

Мой код показывает генерацию PDF, сначала преобразовав DOM в jpeg, а затем сохранив его в формате PDF. Этот подход ошибочен? Если да, не могли бы вы объяснить, почему?

useEffect(() => {
    if (reportRef.current && advisorSignature.current) {
        let node = reportRef.current;
        let reportHeight = reportRef.current.scrollHeight
        let reportWidth = reportRef.current.offsetWidth
        console.log("REPORT HEIGHT", reportHeight)

        domtoimage.toJpeg(node, {width: reportRef.current.offsetWidth * 2, height: reportRef.current.scrollHeight * 2})
        .then(function (dataUrl) {
            const pdf = new jsPDF('p', 'px', [reportHeight - 20, reportWidth]);

            pdf.addImage(dataUrl, 'JPEG', 0, -12, reportWidth, reportHeight);
            pdf.save("download.pdf"); 
            download(dataUrl, 'my-node.jpg')
        })
    .catch(function (error) {
        console.error('oops, something went wrong!', error);
    });}
}, [reportRef])

Любые идеи приветствуются - даже если это хорошая причина убедить наших клиентов не использовать Edge!

...