Как обрабатывать разбиение на страницы PDF в PhantomJS
Я использую PhantomJS для создания PDF файлов из html.
Это прекрасно работает, но я не могу узнать, как работать с разбиением на страницы; Я хочу создать страницу для каждого div в моем документе, но я ничего не могу найти в документе. о разбиении на страницы.
Если мой документ короток, он делает только одну страницу, а если он больше, он создает одну вторую пустую страницу, а мое содержимое находится на первой странице, которая становится очень длинной.
Любая идея? (Я использую модуль phantomJS- node для узлаJS)
Ответы
Ответ 1
PhantomJS заботится о реализации webkits css. Чтобы выполнить ручные разрывы страниц, вы можете использовать следующие свойства:
-
page-break-before
: auto/always/avoid/...
-
page-break-inside
: auto/always/avoid/...
-
page-break-after
: auto/always/avoid/...
Например, div может быть:
<div style="page-break-before:always;"><!-- content --></div>
или
<div style="page-break-after:always;"> <!-- content --></div>
Управление разрывами страниц при печати в Webkit иногда нелегко, в частности, с длинными html-таблицами.
Ответ 2
Очень поздно, но у меня были проблемы с "break-inside: avoid", используя JsReport, которые были исправлены путем изменения типа отображения элемента на встроенный блок. Подробнее здесь:
https://github.com/ariya/phantomjs/issues/10638
Ответ 3
Вы должны увидеть это issue с различными советами.
Попробуйте использовать display:inline-block
в элементе, который вы не хотите ломать, потому что разрыв страницы. Обоснование заключается в том, что webkit уже пытается сохранить изображения от взлома. И изображения являются встроенными блоками.