Подтвердить что ты не робот

Как обрабатывать разбиение на страницы PDF в PhantomJS

Я использую PhantomJS для создания PDF файлов из html.

Это прекрасно работает, но я не могу узнать, как работать с разбиением на страницы; Я хочу создать страницу для каждого div в моем документе, но я ничего не могу найти в документе. о разбиении на страницы.

Если мой документ короток, он делает только одну страницу, а если он больше, он создает одну вторую пустую страницу, а мое содержимое находится на первой странице, которая становится очень длинной.

Любая идея? (Я использую модуль phantomJS- node для узлаJS)

4b9b3361

Ответ 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 уже пытается сохранить изображения от взлома. И изображения являются встроенными блоками.