Я динамически создаю таблицу с использованием php и mysql в содержащий div и затем печатаю ее, используя jsPDF
, Все хорошо, пока таблица не превышает одну страницу. Тогда все, что я получаю, это первая страница. Я потратил недели, часы чтения, попытки и тестирования и просто не могу заставить его напечатать больше, чем первая страница.
Вот что у меня есть:
<!-- jsPDF Scripts -->
<script src="//mrrio.github.io/jsPDF/dist/jspdf.debug.js"></script>
<script src="//html2canvas.hertzen.com/build/html2canvas.js"></script>
$(document).ready(function() {
$("#pdfDiv").click(function() {
var pdf = new jsPDF('p','pt','letter');pdf.addHTML($('#rentalListCan').first(), function() {
pdf.save("rentals.pdf");
});
});
});
Я попытался напечатать страницу напрямую, но форматирование не выполняется.
Я пробовал css используя @page
с page-break-inside: auto
но это не создает разрывы страниц. Спасибо за вашу помощь.
Чтобы решить вашу проблему, есть два подхода, которые мне известны —
Предоставление опций на странице для разделения
варианты = {
разделение страниц: правда
};
А потом —
pdf.addHTML($('#someDiv'), marginX, marginY, options, function() {
pdf.save("doc.pdf");
});
Обратите внимание, что это может плохо разделить вашу таблицу (попробуйте, и вы увидите) — одну вещь, которую вы можете сделать, это добавить пустое пространство между строками, которые разделяются непосредственно перед печатью страницы в формате pdf.
Это происходит потому, что fromHTML () преобразует таблицу в холст, а затем разбивает холст в соответствии с размером страницы PDF.
Но настройка таблицы в стиле здесь пока не поддерживается. Но вы можете настроить шрифт и цвета. Если ваша таблица достаточно проста, это отличный и простой в использовании плагин.
Надеюсь это поможет!
Других решений пока нет …