2014-07-03 79 views
1

我有以下情況:我使用cfdocument標記創建PDF,但文檔值由其他一些cf函數生成。現在,我需要在特定點處進行一些分頁,但從邏輯上講,它不會與cfdocumentitem(pagebreak)標記一起工作,因爲它不嵌套在cfdocument標記中。我想,以紀念我需要這些pagebreaks與特定字符串的點,並與cfdocumentitem標籤在某種程度上取代他們..但預期它不工作..ColdFusion:用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

我的想法是cfsavecontent。 –

+0

你的代碼在做什麼?你在你的PDF文檔中看到字符串''嗎? –

+0

@DanBracuk dashboardHTML是我稱之爲「<一些功能>」 – noah

回答

3

我不認爲你可以用replace來做到這一點。

我們使用特殊字符來表示分頁符。然後將該內容視爲一個列表,將此字符作爲分隔符。然後遍歷「列表」,併爲循環的每次迭代顯示文本塊,然後插入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> 
+0

這是一個非常不錯的主意,但遺憾的是它仍然無法正常工作..現在specialcharacter顯示而不是分頁符.. – noah

+0

爲我們工作......第一次嘗試一個非常簡單的分隔符,以排除任何編碼問題。 (例如星號)。然後檢查numPageBreaks是否給你預期的值。如果是這樣,這應該工作。 –

+0

哎喲..我做了一個可怕的錯誤。我有一個替換之前影響到一些其他的東西,我沒有新的內容保存到一個變量..所以我用舊的......多謝合作! – noah