#ruby-on-rails #ruby-on-rails-3 #pdf #header #pdfkit
#ruby-on-rails #ruby-on-rails-3 #PDF #заголовок #pdfkit
Вопрос:
В настоящее время я использую pdfkit в приложении 3.0.5 rails для создания отчетов об активности пользователя. Документ pdf прост, на первой странице есть некоторые сведения о пользователе, сводка, затем таблица, содержащая всю активность пользователя за выбранный период.
Первая страница в порядке, но когда я показываю таблицу, следующие страницы должны начинаться с заголовков столбцов заголовка на каждой странице с заголовком таблицы активности. (это напоминает банковскую выписку) Что-то вроде этого:
|user |action | source | destination |date-time |
xxx 1 1 2 2011-04-01 hh:mm:ss
....
====================page break=================================
#after page break the column titles must be printed again
|user |action | source | destination |date-time |
xxx 5 4 5 2011-04-05 hh:mm:ss
Кто-нибудь знает, как я мог бы это сделать?
Комментарии:
1. Похоже, что эта ошибка связана с wkhtmltopdf @ code.google.com/p/wkhtmltopdf/issues/detail?id=9
Ответ №1:
Вы должны иметь возможность использовать некоторый javascript для изменения содержимого заголовка, но только на определенных страницах.
в вашем HTML-заголовке есть скрытый div с заголовками вашей таблицы, но по умолчанию ваш заголовок первой страницы. Затем с помощью функции загрузки javascript сделайте что-то вроде этого:
<html>
<head>
<script type='text/javascript'>
function swap_header() {
var pages = document.getElementsByClassName('header');
for (var i=0; i<pages.length; i) {
if ( i > 0 ) {
pages[i].innerHTML = '<table><thead><th>user</th><th>action</th></thead></table>';
}
}
}
</script>
</head>
<body onload='swap_header()'>
<div class='header'>Normal 1st page header</div>
<table>
<tr><td>foo</td><td>bar</td></tr>
</table>
</body>
</html>
Вы также могли бы отобразить 2 разных PDF-файла и объединить их программно с pdftk.