我在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,但它对我没有帮助,因为在生成页面后,我看不到哪个公司属于哪个页面。
发布于 2011-05-24 20:02:19
优秀的自文档手册(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是否可以处理图像(如果您还没有尝试过)。我完全不知道它是否工作,我现在也没有机会检查它。
发布于 2011-05-24 19:57:11
不确定这是否会有帮助,但WickedPDF是一个很好的对虾替代品。
https://stackoverflow.com/questions/6109945
复制相似问题