wicked_pdf:是否可以在第一页上显示标题&页脚只在最后?

时间:2012-11-14 17:08:10

标签: ruby-on-rails wkhtmltopdf wicked-pdf

现在我有:header => {:html => {:template => "layouts/pdf_header.html.erb"}}设置。有什么我可以传递,只会在文档的第一页显示标题?

我也可以为页脚执行此操作吗?这里几乎更重要,因为我不能真正想到任何其他方式来让页脚动态地粘贴在页面的底部,而每次都会有不同的长度和不同的页面数。

2 个答案:

答案 0 :(得分:4)

一些快速的JavaScript可以解决这个问题。按照wkhtmltopdf

上“页脚和页眉”下的样板文件进行操作

这些分别是页眉和页脚模板。 跟踪的关键变量是“页面”,可从URL哈希获得。 你的标题看起来像这样:

<div class="headerContent" style="display:none">
   ...my awesome html
    <hr />
</div>
<script type="text/javascript">
    var headerCheck = function() {
      var x=document.location.search.substring(1).split('&');
      for (var i in x) {
        if(x[i] == "page=1")
          document.getElementsByClassName("headerContent")[0].style.display = "block";
       }
     }();
</script>

同样对于您的页脚,代码看起来像这样:

<div class="footerContent" style="display: none">
    ...awesome footer html
</div>
<script type="text/javascript">
    var footerCheck = function() {
       var x=document.location.search.substring(1).split('&');
       var currentPage = 1;
       for (var i in x) {
         var z=x[i].split('=',2);
         if(z[0] == "page")
           currentPage = unescape(z[1]);
         if(z[0] == "topage" && currentPage == unescape(z[1]))
           document.getElementsByClassName("footerContent")[0].style.display = "block";
        }
     }();
 </script>

答案 1 :(得分:0)

渲染pdf时添加布局

format.pdf do
  render :pdf => "my_pdf",
  :layout => 'pdf
end

视图/布局/ pdf.haml

%html
  %head

  %body
    = render "layouts/header"
    = yield
    = render "layouts/footer"