0

wicked_pdf に問題があります。私のjavascriptは考慮されていません。レポートが生成され、表示されるテキストは「未定義または未定義のページ」です。javascript を wicked_pdf にリンクするための助けをいただければ幸いです。

マークアップ:

<html>
  <head>
    <script>
      function number_pages() {
        console.log('hi');
        var vars={};
        var x=document.location.search.substring(1).split('&');
        for(var i in x) {var z=x[i].split('=',2);vars[z[0]] = unescape(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()">
    Page <span class="page"></span> of <span class="topage"></span>
  </body>
</html>

コントローラーのアクション:

def generate_report
  respond_to do |format|
    format.html
    format.pdf do
      render :pdf => "hello.pdf", :template => "reports/templates/#{params[:report]}.pdf.erb", :disable_javascript => false
    end
  end
end
4

1 に答える 1

1

そのコードは wkhtmltopdf ドキュメントの例として提供されており、次のようにヘッダーまたはフッター ファイルで提供されている場合にのみ機能します。

format.pdf do
  render :pdf => "hello.pdf",
         :template => "reports/templates/#{params[:report]}.pdf.erb",
         :footer   => {
           :html => {
             :template => "reports/templates/#{params[:report]}.pdf.erb"
           }
         }
end

これを実行すると、内側のテンプレートには が表示されますpage undefined of undefinedが、フッターには が表示されますpage 1 of 1。これは、wkhtmltopdf のページ分割の内部に関係していると思います。

于 2012-05-01T15:42:18.760 に答える