すばらしい自己文書化マニュアル(http://cloud.github.com/downloads/sandal/prawn/manual.pdf)には、次のコード(105ページ)が含まれています。
repeat(lambda { |pg| pg % 3 == 0 }) do
draw_text "Every third page", :at => [250, 20]
end
repeat(:all, :dynamic => true) do
draw_text page_number, :at => [500, 0]
end
どの会社がどのページから始まるかを知っていれば、ラムダまたはダイナミックのいずれかがあなたに代わってトリックを行うはずです。
会社ごとのページ数がわからない場合は、それぞれのPDFを作成してマージしてください。マニュアル、109ページ:
filename = "#{Prawn::BASEDIR}/data/pdfs/multipage_template.pdf"
Prawn::Example.generate("full_template.pdf", :template => filename) do
go_to_page(page_count)
start_new_page
text "Previous pages and content imported.", :align => :center
text "This page and content is brand new.", :align => :center
end
最悪の場合、一度に2つをマージすることになります。
pdf.number_pages
また、 withオプションが画像で機能するかどうかを確認することもでき:filter
ます(まだ試していない場合)。私はそれが機能するかどうか全くわかりません、そして私は今それをチェックする機会がありません。