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

views / layouts / pdf.haml

%html
  %head

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