Prawn PDF:创建一个没有默认页面的模板

时间:2012-06-13 01:05:45

标签: ruby pdf prawn

我想创建一个带有一个或多个页面的对象,每个页面使用不同的模板。

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

这可以工作并创建一个文档,但第一页是一个空白字母大小的页面,然后我的页面添加了start_new_page显示。有没有办法让大虾不生成第一页?

谢谢!

1 个答案:

答案 0 :(得分: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