1

だから私はこのように見える各ページに必要なヘッダーを持っており PDF レポート ヘッダー、ユーザーの名前で[ページ]と書かれている場所にページ番号を表示したい. ここに私がこれまでに持っているものがありますが、機能していません:

私のコントローラーで:

render  pdf: "report",
        page_size: "Letter",
        layout: "pdf",
        template: "/results/report",
        footer: { 
            spacing: -265,
            html: { template: '/layouts/_report_header.html'} 
        },
        header: { 
            spacing: 3,
            html: { template: '/layouts/_page_header.html' }
        },
        margin: { 
            top: 20,
            bottom: 5 
        }

私の /layouts/_page_header.html.erb で

<html>
  <head>
    <% user_id = session[:user_id] %>
    <% user = User.find(user_id) %>
    <script>
      function number_pages() {
        var vars={};
        var x=document.location.search.substring(1).split('&');
        for(var i in x) {var z=x[i].split('=',2);vars[z[0]] = decodeURIComponent(z[1]);}
        var x=['frompage','topage','page','webpage','section','subsection','subsubsection'];
        for(var i in x) {
          var y = document.getElementsByClassName(x[i]);
          for(var j=0; j<y.length; ++j) y[j].textContent = vars[x[i]];
        }
      }
    </script>
  </head>
  <body onload="number_pages()">
    <div class="page_header inline">
          <h3 class="margin_none font_roboto">Nutrient Tracking Tool - Report</h3>
      </div>
      <div class="right font_roboto">
          <strong>User:</strong> <%= user.name %> | <span class="page">[page]</span></br>
      </div>
      <div>
          <hr class="line_break" color="dodgerblue">
      </div>
  </body>
</html>

こちらのgithubのドキュメントによると

上記の「var x」にリストされているクラスを持つものはすべて、レンダリング時に自動入力されます。

これにより、spanクラスのページに現在のページ番号が表示されるはずですが、表示されません。どうすればこれを修正できますか?

更新:{ center: '[page] of [topage]' }フッターのヘッダーに追加すると、ページ番号が正しく表示されることに言及することも重要だと思います。

ページ番号表示

4

1 に答える 1