Почему wkhtmltopdf page-break-after не имеет никакого эффекта?

Я использую wkhtmltopdf 0.10.0 RC2 для Mac

У меня есть HTML, как этот:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <link href="print.css" rel="stylesheet">
    <style type="text/css" media="screen,print">
      .break{
        display: block;
        clear: both;
        page-break-after: always;
        border :1px solid red
      }
      .page-breaker {
      display: block;
      page-break-after: always;
      border :1px solid red
      }
    </style>
  </head>
  <body>
    <div class="container break">
      page 1
    </div>
    <div class="page-breaker"></div>
    <div class="container">
      page 2
    </div>
  </body>
</html>

Я просто пытаюсь:

wkhtmltopdf test.html test.pdf

Но это не произвело разрыв страницы, я делаю что-то не так?

5 ответов

Возможно, это не связано с тем, что ваш pdf сгенерирован нормально с более ранней версией wkhtmltopdf. В любом случае, у меня были похожие проблемы с неправильным применением разрывов страниц. Моя проблема заключалась в том, что родительские элементы элемента, разбитого на странице, имеют overflow Кроме как visible, Это исправило мою проблему:

* {
  overflow: visible !important;
}

Конечно, вы можете быть более конкретным о тегах, к которым это относится;)

Попробуйте использовать следующим образом

 <div style="page-break-before:always;">
   //your content
</div>

это должно работать.

Я использую wkhtmltopdf 0.12.3.2

Для меня функция разрыва страницы работает, когда установлена ​​граница, и когда прерыватель div является непосредственным потомком тела.

.page-breaker {
    clear: both;
    display: block;
    border :1px solid transparent;
    page-break-after: always;
}

break-break-before не работает.

-print-media-type не требуется.

Я использую версию wkhtmltopdf 0.12.0

Для меня разрывы страниц работают ТОЛЬКО с --print-media-type. Без этого работает защита разрыва страницы для изображений, но не разрыва страницы или до.

Я должен был сделать специальный файл CSS для печатных СМИ, чтобы заставить его работать.

Установка формата бумаги на "А3" или использование "переполнения: видимый" не имеет никакого значения.

Также смотрите WKHTMLTOPDF с pdfkit на Rails, игнорируя разрывы страниц таблицы

Он работает нормально после удаления носителя печати

До:

@media print {
    .page-break { height:0;page-break-after: always; margin:0; border-top:none;}
}

вышеуказанный код не работает в новой версии.

Сейчас

.page-break { height:0;page-break-after: always; margin:0; border-top:none;}

Обновите wkhtmltopdf до версии 0.12.5. Проблема с разрывом страницы не возникает у меня после обновления.

Использовать --disable-smart-shrinking чтобы избежать пустого пробела (если есть)

Использовать --zoom <value> чтобы избежать страницы страницы (если вся страница не отображается)

Другие вопросы по тегам