3

RailsとPrawnでPDFエクスポート機能を構築しており、1つのPDFで多数の「会社」をエクスポートしたいと考えています。会社は通常2〜3ページにわたって流れます。現在、単一の会社をエクスポートする場合、これはpdf.repeat(:all)で機能します。ただし、会社に基づいてヘッダーのロゴを変更したいのですが。簡単なコード例は次のとおりです。

@companies.each do |c|
 pdf.repeat(:all) do
  pdf.image company.logo.url(:thumb), :at => [0,520]
 end
end

これを行う方法はありますか?Prawn PDFのヘッダーやフッターなどの関連トピックを見てきましたが、生成された後、どの会社がどのページに属しているかがわからないため、役に立ちません。

4

2 に答える 2

3

すばらしい自己文書化マニュアル(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ます(まだ試していない場合)。私はそれが機能するかどうか全くわかりません、そして私は今それをチェックする機会がありません。

于 2011-05-24T12:02:18.537 に答える
-1

これが役立つかどうかはわかりませんが、WickedPDFはPrawnの優れた代替手段です。

于 2011-05-24T11:57:10.967 に答える