我正在Rails和Prawn中构建PDF导出功能,我想在一个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
有没有办法做到这一点?我查看了相关的主题,例如header and footer in Prawn PDF,但它对我没有帮助,因为我看不到公司在生成后属于哪个页面。
答案 0 :(得分: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
如果你知道哪家公司从什么页面开始,那么lambda或动态应该为你做的伎俩。
如果您不知道每家公司的页数,请为每个公司制作一个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
在最糟糕的情况下,您最终会同时合并两个。
您还可以检查带有pdf.number_pages
选项的:filter
是否适用于图片(如果您尚未尝试过)。我完全不知道它是否有效,我现在没有机会检查它。
答案 1 :(得分:-1)
不确定这是否有帮助,但WickedPDF是Prawn的一个很好的选择。