大虾:多页的条件文本

Prawn: conditional text for multiple page

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

我认为它应该有效:

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

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

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