【问题标题】:Prawn: conditional text for multiple page大虾:多页的条件文本
【发布时间】:2016-03-22 18:56:03
【问题描述】:

我可以在大虾中生成pdf。如果生成的 pdf 是多页的,我需要显示一些文本。例如,如果生成的 pdf 超过一页,那么我必须在除最后一页之外的所有页面中显示“继续...”。如果 pdf 只是一页,那么我根本不想显示它。有可能吗?

【问题讨论】:

    标签: ruby-on-rails pdf-generation prawn prawnto


    【解决方案1】:

    Prawn's repeat 可以在任何选择的页面上打印文本。第一个参数采用命名键、数组、范围或 lambda。在您的情况下,您可以将除最后一页之外的所有页面定义为范围。

    page_range = (1..(pdf.page_count - 1))
    pdf.repeat(page_range) do
      pdf.draw_text "continued ..."
    end
    

    【讨论】:

      【解决方案2】:

      我认为它应该有效:

      if (num_pages = pdf.page_count) > 1
        pdf.repeat(lambda { |pg| pg < num_pages }) do
          pdf.draw_text "continued...", :at => [250, 20]
        end
      end
      

      【讨论】:

      • 您不需要if 子句。 pg &lt; num_pages 确保它永远不会在最后一页上打印。一页文档只有一页,也是最后一页。 1 &lt; 1 是假的。
      猜你喜欢
      • 2017-12-06
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      • 1970-01-01
      • 2012-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多