【问题标题】:How can I add page numbers to PDFKit generated PDFs?如何向 PDFKit 生成的 PDF 添加页码?
【发布时间】:2011-02-17 19:36:56
【问题描述】:

我有多个使用 PDFKit 生成的页面。如何在底部添加页码?

【问题讨论】:

    标签: ruby-on-rails pdfkit


    【解决方案1】:
    PDFKit.configure do |config|
      config.default_options = {
        header_right: "Page [page] of [toPage]"
      }
    end
    
    kit = PDFKit.new(body_html)
    

    在此处阅读所有详细文档:
    http://madalgo.au.dk/~jakobt/wkhtmltoxdoc/wkhtmltopdf-0.9.9-doc.html

    PDFKit 只是对用 C 编写的 wkhtmltopdf 应用程序的一个总结。

    【讨论】:

    • 效果很好,似乎比脚本选项更容易。唯一的问题是应该强调,即 header_right
    • 这个答案应该被接受。请注意@riley 提到的评论。需要为 header_right。 footer_right 也可以。
    • @hendrik 如果您使用footer_html 选项,此解决方案将不起作用。
    【解决方案2】:

    您需要像这样指定页脚:

    kit = PDFKit.new(your_html_content_for_pdf, :footer_html => "#{path_to_a_footer_html_file}")
    

    然后在页脚文件中有这个:

    <html>
      <head>
        <script type="text/javascript">
          function subst() {
            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 style="margin: 0;" onload="subst();">
        Page <span class="page"></span> of <span class="topage"></span>
      </body>
    </html>
    

    'frompage'、'topage'、'page'、'webpage'、'section'、'subsection'、'subsubsection' 类的元素将被适当的数据替换

    【讨论】:

    • hthanks,我将页脚包裹在
    • 你好,我想我有一个小问题:我将我的信件的多个联系人大量合并到一个文档中......它可能是一个两页的信件,但我有 15 个,所以它显示页码为 1...31....我可以更改吗?
    【解决方案3】:

    我用 PDFKit 做了页码,只是添加了这个:

    %meta{:name => 'pdfkit-footer_right', :content => "[page]"}
    

    在我的 haml 文件中,在我的 RoR 项目中。

    【讨论】:

      【解决方案4】:

      出于某种奇怪的原因,(可能是因为我使用的是 slim)——我必须在内容周围使用单引号,而不是双引号——否则它会尝试转义括号并显示原始文本“[page]”向上,所以如果您的页面遇到此问题,请尝试使用单引号。

      【讨论】:

        猜你喜欢
        相关资源
        最近更新 更多
        热门标签