0

各ページに異なるテンプレートを使用する 1 ページ以上の長さのエビを含むドキュメントを作成したいと考えています。

Prawn::Document.generate("test.pdf") do
  doc.faces.each do |face|
    start_new_page(:template => face.background_path)
  end
end

これは機能し、ドキュメントを作成しますが、最初のページは空白のレターサイズのページであり、start_new_page で追加されたページが表示されます。エビがその最初のページを生成しないようにする方法はありますか?

ありがとう!

4

1 に答える 1

2
pdf = Prawn::Document.new(:skip_page_creation => true)
doc.faces.each do  |face|
  pdf.start_new_page(:template => face.background_path)
  < your page building code here >
end

ドキュメントを正しく読んでいればうまくいくはずです。

私のコントローラコードは次のようになります:

def pdf
  @person = Person.find(params[:id])
  send_data @person.as_pdf, :filename => "#{@person.pdfName}.pdf", :type => "application/pdf"
end

person.rbのas_pdfメソッドは次のようになります

def as_pdf(type = 'short')
  pdf = Prawn::Document.new(:margin => [36, 36, 36, 36] )
  driver = self.pdf_layout_info
  driver.each do |element|
    < lots of ugly layout logic >
  end
  pdf.render
end
于 2012-06-15T03:43:43.630 に答える