问题描述
|
我正在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
有办法吗?我看过相关的主题,例如Prawn PDF中的页眉和页脚,但是它对我没有帮助,因为在生成该页后,我看不到公司属于哪个页面。
解决方法
很棒的自我文档手册(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或dynamic都应该为您解决问题。
如果您不知道每个公司的页面数,请为每个页面制作一个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
在最坏的情况下,您最终将一次合并两个。
您可能还会检查带有:filter
选项的pdf.number_pages
是否适用于图像(如果尚未尝试过)。我完全不知道它是否有效,现在也没有机会检查它。
,不确定这是否有帮助,但是WickedPDF是Prawn的不错替代品。