Исправить обрезание содержимого заголовков 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 или в случае, когда верхний и нижний колонтитулы находятся в теге заголовка. вам также необходимо создать тег стиля в исходном документе, чтобы указать, что отображение отсутствует. (вы можете добавить это скриптом)

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