我有一个 4 页的 PDF 模板,我想用prawn生成。我需要在我的 pdf 中重复这个模板多次,每次用不同的内容填充它。
如果我使用:
Prawn::Document.generate('output.pdf', template: "a_template.pdf")
我在 output.pdf 中获得了一次模板,后续页面为空。
如果我使用
["John", "Jane"].each do |user|
start_new_page template: 'a_template.pdf', page: 1
text "Content filled on page 1 for user #{user}"
3.times { |i| start_new_page template: 'a_template.pdf', template_page: i+2 }
end
我在模板的第一页的每一页上重复并覆盖了文本“在第 1 页上为用户填充的内容......”。因此,对于每第四页,我都会在页面上的同一位置呈现所有用户的内容。
有谁知道如何让虾多次包含一个模板,每次都用不同的内容填充模板?我想避免生成一堆PDF文件并将它们连接在一起......
即使我首先将模板所需的次数连接在一起,对于使用以下代码的每个用户:
tmp_template = Tempfile.new ['template', '.pdf'], tmpdir
Prawn::Document.generate(tmp_template.path, skip_page_creation: true) do
users.each do |u|
4.times { |i| start_new_page template: card_tmpl, template_page: i+1 }
end
end
然后做:
Prawn::Document.generate('output.pdf', template: tmp_template.path)
为后续用户填写后续模板副本,每当第一页的副本出现在新模板中时,它仍然会放置相同的内容!