1

我有以下情况:我使用 cfdocument 标签创建了一个 PDF,但文档值是由其他一些 cf 函数生成的。现在我需要在特定点进行一些分页符,但它在逻辑上不适用于 cfdocumentitem (pagebreak) 标记,因为它没有嵌套在 cfdocument 标记中。我试图用特定的字符串标记需要这些分页符的点,并以某种方式用 cfdocumentitem 标记替换它们。但正如预期的那样,它不起作用。

<some function>
  <table>blablahtml</table>

  <cfif pdfreport>markedforpagebreak</cfif>

  <table>blablahtml</table>
  .
  .
  .
</some function>

<other function>
  <cfdocument>
    #replace(dashboardHTML,"markedforpagebreak","<cfdocumentitem type='pagebreak'/>","all")#
  </cfdocument>
</other function>

我还查看了 evalAtPrint 属性,但它也不起作用..有没有人想办法解决我的问题?谢谢 =)

4

1 回答 1

3

我不认为你可以用替换来做到这一点。

我们使用特殊字符来表示分页符。然后将内容视为列表,以该字符为分隔符。然后遍历“列表”,对于循环的每次迭代,显示文本块,然后插入 cfdocumentitem 标签,例如

<cfdocument>
<cfset numPageBreaks = listlen(email_message_text,'¶') />
    <cfloop from="1" to="#numPageBreaks#" index="thisPageBreak">
        #listgetat(email_message_text,thisPageBreak,'¶')#
        <cfif thisPageBreak lt numPageBreaks>
         <cfdocumentitem type="pagebreak" />
        </cfif>
    </cfloop>
</cfdocument>
于 2014-07-03T14:48:51.750 回答