0

我想创建一个包含一页或多页长的虾的文档,每个页面使用不同的模板。

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 回答