ColdFusion:用cfdocumentitem标记替换String

时间:2014-07-03 14:18:37

标签: pdf replace coldfusion cfdocument

我有以下情况:我使用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属性,但它也没有工作..所以有人有想法解决我的问题吗? 谢谢=)

1 个答案:

答案 0 :(得分:3)

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

我们使用特殊字符来表示分页符。然后将内容视为列表,将此字符作为分隔符。然后遍历&#39;列表&#39;,对于循环的每次迭代,显示文本块,然后插入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>