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