【发布时间】:2016-03-22 18:56:03
【问题描述】:
我可以在大虾中生成pdf。如果生成的 pdf 是多页的,我需要显示一些文本。例如,如果生成的 pdf 超过一页,那么我必须在除最后一页之外的所有页面中显示“继续...”。如果 pdf 只是一页,那么我根本不想显示它。有可能吗?
【问题讨论】:
标签: ruby-on-rails pdf-generation prawn prawnto
我可以在大虾中生成pdf。如果生成的 pdf 是多页的,我需要显示一些文本。例如,如果生成的 pdf 超过一页,那么我必须在除最后一页之外的所有页面中显示“继续...”。如果 pdf 只是一页,那么我根本不想显示它。有可能吗?
【问题讨论】:
标签: ruby-on-rails pdf-generation prawn prawnto
Prawn's repeat 可以在任何选择的页面上打印文本。第一个参数采用命名键、数组、范围或 lambda。在您的情况下,您可以将除最后一页之外的所有页面定义为范围。
page_range = (1..(pdf.page_count - 1))
pdf.repeat(page_range) do
pdf.draw_text "continued ..."
end
【讨论】:
我认为它应该有效:
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 < num_pages 确保它永远不会在最后一页上打印。一页文档只有一页,也是最后一页。 1 < 1 是假的。