Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates 虾重复模板填充不同的内容_Templates_Repeat_Prawn - Fatal编程技术网

Templates 虾重复模板填充不同的内容

Templates 虾重复模板填充不同的内容,templates,repeat,prawn,Templates,Repeat,Prawn,我有一个4页的模板为我的PDF我想与生成。我需要重复这个模板在我的pdf多次,每次填写不同的内容 如果我使用: Prawn::Document.generate('output.pdf',模板:“a_template.pdf”) 我在output.pdf中获得一次模板,后续页面为空 如果我使用 [“John”,“Jane”]。每个用户| 开始新页面模板:“a_template.pdf”,第1页 文本“第1页为用户#{user}填写的内容” 3.times{i|start|u new_页面模板:

我有一个4页的模板为我的PDF我想与生成。我需要重复这个模板在我的pdf多次,每次填写不同的内容

如果我使用:

Prawn::Document.generate('output.pdf',模板:“a_template.pdf”)
我在output.pdf中获得一次模板,后续页面为空

如果我使用

[“John”,“Jane”]。每个用户|
开始新页面模板:“a_template.pdf”,第1页
文本“第1页为用户#{user}填写的内容”
3.times{i|start|u new_页面模板:'a_template.pdf',模板页面:i+2}
结束
我得到的文本“内容填写在第1页为用户…”重复和覆盖对方,在每一页,这是从模板的第一页。因此,对于每四个页面,我都会在页面的同一位置呈现所有用户的内容

有人知道如何让对虾多次包含模板,每次都用不同的内容填充模板吗?我想避免生成一堆PDF文件并将它们连接在一起

即使我第一次将模板连接在一起所需的次数,对于使用以下代码的每个用户:

tmp_template=Tempfile.new['template','.pdf',tmpdir
Prawn::Document.generate(tmp_template.path,skip_page_creation:true)do
用户。每个人都做| u|
4.times{i |开始|新|页面模板:卡片| tmpl,模板|页面:i+1}
结束
结束
然后做:

Prawn::Document.generate('output.pdf',模板:tmp\u template.path)

要为后续用户填充后续模板副本,它仍然会在新模板中出现第一页副本时放置相同的内容

没有其他人出现,所以我做了以下事情

首先创建没有任何页面的新PDF对象:

pdf=Prawn::Document.new skip\u page\u创建:true
然后,对于每个用户:

  • 创建一个新的、完整的PDF填充所需模板,并将其保存到临时文件
    tempfile
    (使用)
  • 将此临时文件包含在开头创建的PDF(PDF对象)中,如下所示(假设模板有两页):
  • 2.times{i | pdf.start|u新页面模板:tempfile,模板页面:i+1}
    
    最后,呈现最终PDF:

    pdf.render“output.pdf”
    

    表演糟透了。但它是有效的,以这种方式生成的PDF将在acrobat reader中打开。

    Prawn maintainer的评论指出,我们更应该找到另一个PDF库。Prawn决定放弃对模板的支持。