Исправить обрезание содержимого заголовков wkhtmltopdf?
Мои заголовки часто обрезают контент, так что контент под ним не полностью виден, создается впечатление, что страница продолжается под заголовком до его окончания, и в результате отображается не весь контент.
Есть ли правило CSS, которое я могу использовать для этого? Или аргумент cmd для wkhtmltopdf? Или любым другим способом?
5 ответов
Я узнал, что это на самом деле известная проблема и вряд ли будет изменена через некоторое время. Обходной путь должен использовать style="margin:0; padding:0;"
в шапке <body>
элемент. Другим обходным решением было бы поэкспериментировать с --header-spacing n
параметр. Еще один способ - обернуть все элементы верхней страницы и добавить поле, но это очень плохая, нединамичная идея.
Для получения дополнительной информации см.:
http://code.google.com/p/wkhtmltopdf/issues/detail?id=182 (дубликат этой проблемы) http://code.google.com/p/wkhtmltopdf/issues/detail?id=175 (происхождение этой проблемы) http://code.google.com/p/wkhtmltopdf/issues/detail?id=523 (обходной путь между заголовками)
Работал для меня с <body style='height:50px;overflow:hidden;margin:0;padding:0;'>
в верхнем и нижнем колонтитуле и тому --header-spacing 30 -T 45mm
параметры.
Убедитесь, что у вас есть <!doctype html>
в начале страницы верхнего / нижнего колонтитула. В противном случае Webkit отображает страницу в режиме причуды.
Это сработало для меня
thead {display: table-header-group;}
tfoot {display: table-row-group;}
tr {page-break-inside: избежать;}
Это сработало для меня
- расстояние между заголовками XX -T XX мм
XX должно иметь то же значение, например: - расстояние между заголовками 20 -T 20 мм
Я нашел решение: я создал сценарий bash, который изолирует заголовок в файле HTML, а затем вводит его с помощью --header-html
Изменить: Предположим, что ваш заголовок находится в теге thead
filename="x.html"
begin=`awk '/<thead>/{ print NR; exit }' $filename`
end=`awk '/<\/thead>/{ print NR; exit }' $filename`
echo "<DOCTYPE! html>" > $filename".head.html"
cat $filename | head -$end | tail -n +$begin | sed -e "s/.*<thead>/<thead>/g" | sed -e "s/<\/thead>.*/<\/thead>/g" >> $filename".head.html"
#You can do the same for tfoot
wkhtmltopdf --header-html $filename".head.html" $filename output.pdf
он работает также для tfoot или в случае, когда верхний и нижний колонтитулы находятся в теге заголовка. вам также необходимо создать тег стиля в исходном документе, чтобы указать, что отображение отсутствует. (вы можете добавить это скриптом)