2

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

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

4

2 回答 2

5

一些快速的 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>
于 2012-12-03T18:24:02.717 回答
-1

渲染pdf时添加布局

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

视图/布局/pdf.haml

%html
  %head

  %body
    = render "layouts/header"
    = yield
    = render "layouts/footer"
于 2014-12-19T10:12:30.193 回答