我想创建一个包含一页或多页长的虾的文档,每个页面使用不同的模板。
Prawn::Document.generate("test.pdf") do
doc.faces.each do |face|
start_new_page(:template => face.background_path)
end
end
这可以工作并创建一个文档,但是第一页是空白字母大小的页面,然后显示我添加了 start_new_page 的页面。有没有办法让虾不生成第一页?
谢谢!
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