#reactjs #pdf #jspdf #react-to-pdf
Вопрос:
Я пытаюсь экспортировать отчеты на своей странице. Я пытался использовать 2 разные библиотеки jspdf и react-to-pdf, обе не работают последовательно. В обеих библиотеках вы должны поставить ссылку на div, и он преобразуется из img в pdf. его преобразование, но если я нажму 10 раз, чтобы экспортировать кнопку pdf, это даст мне 10 разных PDF-файлов, которые не выглядят одинаково. Это мои кнопки экспорта pdf, в этой используется библиотека react-to-pdf :
<Pdf targetRef={this.ref} filename="reacToPdf.pdf" scale={0.7}>
{({ toPdf }) => <Button color='grey' onClick={toPdf}>Export PDF</Button>}
</Pdf>
Этот использует jspdf :
<Button color='grey' onClick={() => {
const div = document.getElementById('exportPdfDiv')
html2canvas(div)
.then((canvas)=> {
const imgData = canvas.toDataURL('image/png');
const pdf = new jsPDF('p', 'pt');
pdf.addImage(imgData, 'PNG', 0, 0, 0, 0, undefined, false);
pdf.save("jspdf.pdf");
})
}
}>Export PDF 2</Button>
библиотека react-to-pdf 3 разные pdf 1 2 3
библиотека jspdf 3 различных pdf 1 2 3
Как вы можете видеть, каждый из них занимает другую позицию, ничего не меняя в коде. правильный pdf-файл должен быть таким же, как этот.
Ответ №1:
немного запоздалый ответ, но если все еще нужен, вы можете проверить это: сгенерировать-pdf-из-react-html
С помощью generate-pdf-from-react-html вы можете создавать PDF-файлы с различной ориентацией, правильным размером и макетами из чистого html с включенными стилями.
Комментарии:
1. Привет, спасибо за ответ. Я нашел, в чем проблема. Все библиотеки pdf вызывают проблемы, потому что страница, которую я хочу экспортировать в формате pdf, не имеет формата А4. В настоящее время я использую таблицы данных, и это позволяет мне получить таблицу в формате pdf. таблицы данных : datatables.net/extensions/buttons/examples/html5/pdfPage.html