如何在特定页面中添加标题pdfkit生成的pdfs

时间:2011-04-12 20:03:32

标签: ruby-on-rails ruby-on-rails-3 pdf header pdfkit

我目前在3.0.5 rails应用程序中使用pdfkit来生成用户活动报告。 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 个答案:

答案 0 :(得分:1)

你应该可以使用一些javascript来改变标题的内容,但只能在某些页面上使用。

你头文件中的

html中有一个隐藏的div与你的表头,但默认是你的第一页头。然后使用javascript onload函数执行以下操作:

<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结合起来。