Wkhtmltopdf Персонажи в одной строке частично разрезаны между страницами
Я работаю над проектом, используя ruby on rails (3.1). Мое требование состоит в том, чтобы создать pdf файл из html-содержимого. Поэтому я использую жемчужину pdfkit.
На некоторых страницах символы в одной строке частично разрезаются между страницами. Когда я конвертирую html в pdf, используя pdfkit gem
версия wkhtmltopdf: wkhtmltopdf - 0.11.0 rc1
операционная система: Linux CentOS 5.5
На изображении ниже показан символ, частично разрезанный между страницами.
Пожалуйста, предложите решение.
Пример 1
![enter image description here]()
Пример 2
![enter image description here]()
Ответы
Ответ 1
Я просто наткнулся на это и нашел то, что разрешило проблему для меня. В моем конкретном случае были divs с display: inline-block; margin-bottom: -20px;
. Как только я изменил их, чтобы заблокировать и reset нижний край, расщепление линии исчезло. YMMV.
Ответ 2
В соответствии с некоторой документацией, которую я нашел (см. страницу Breaking), это известная проблема и предлагает использовать разрывы страниц CSS для вставки разрывов страниц (при условии, что вы используете исправленные версия QT):
Текущий алгоритм разбивки страницы WebKit оставляет много желательно. В основном webkit сделает все на одну длинную страницу, а затем разрезать его на страницы. Это означает, что если у вас есть два столбца текста, где один вертикально сдвинут на половину строки. Тогда webkit вырезает линию на куски, отображая верхнюю половину на одной странице. А также нижняя половина на другой странице. Он также сломает изображение в два и скоро. Если вы используете исправленную версию QT, вы можете использовать CSS свойство "перерыв страницы" для исправления этого. Нелегко решение этой проблемы, пока это не решится, попробуйте организовать HTML-документов, так что он содержит много строк, на которых могут быть вырезать чисто.
Смотрите также: http://code.google.com/p/wkhtmltopdf/issues/detail?id=9, http://code.google.com/p/wkhtmltopdf/issues/detail?id=33 и http://code.google.com/p/wkhtmltopdf/issues/detail?id=57.
Ответ 3
У меня была проблема с таблицей:
![enter image description here]()
Затем я добавил это в свой CSS:
table, img, blockquote {page-break-inside: avoid;}
Это устранило проблему:
![enter image description here]()
Ответ 4
Проблема с разрезанным текстом - это известная проблема webkit, и разработчики нашли решение внутри wkhtmltopdf. Обновление до 0.12.1 исправит проблему с вырезанным текстом (если вы не хотите тратить время на компиляции, вы можете просто взять двоичный файл здесь: https://github.com/h4cc/wkhtmltopdf-amd64).
Ответ 5
В моем случае проблема была решена путем комментирования следующих css:
html, body {
overflow-x: hidden;
}
В общем, проверьте, установлены ли теги overflow
как hidden
и удалите его или установите для него visible
.
Btw, я использую wkhtmltopdf version 0.12.2.1
в Windows 8.