Я создал 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!