<cfdocument format="PDF" localURL="yes">
<cfoutput query="myquery">
<!--- Section 1 --->
<cfdocumentsection name="Section1-#myquery.id#">
<cfdocumentitem type="header">
<h1>This is a Header</h1>
</cfdocumentitem>
<table align="center"><tr><td>counter my query</td></tr></table>
<cfdocumentitem type="footer">
<h1>Page #cfdocument.currentPageNumber# of #cfdocument.totalPageCount#</h1>
</cfdocumentitem>
</cfdocumentsection>
<cfdocumentsection name="Section2-#myquery.id#">
<cfdocumentitem type="header">
<h1>2nd header</h1>
</cfdocumentitem>
<table align="center"><tr><td>counter my query 2</td></tr></table>
<cfdocumentitem type="footer">
<h1>Page #cfdocument.currentPageNumber# of #cfdocument.totalPageCount#</h1>
</cfdocumentitem>
</cfdocumentsection>
</cfoutput>
</cfdocument>
When this code is run, it will render perfectly, But if we have a scenario where your cfoutput query="myquery" is empty and returning no results, we will get the cfdocument has no body error.
<cfdocument format="PDF" localURL="yes">
<cfif myquery.recordcount>
<cfoutput query="myquery">
<!--- Section 1 --->
<cfdocumentsection name="Section1-#myquery.id#">
<cfdocumentitem type="header">
<h1>This is a Header</h1>
</cfdocumentitem>
<table align="center"><tr><td>counter my query</td></tr></table>
<cfdocumentitem type="footer">
<h1>Page #cfdocument.currentPageNumber# of #cfdocument.totalPageCount#</h1>
</cfdocumentitem>
</cfdocumentsection>
<cfdocumentsection name="Section2-#myquery.id#">
<cfdocumentitem type="header">
<h1>2nd header</h1>
</cfdocumentitem>
<table align="center"><tr><td>counter my query 2</td></tr></table>
<cfdocumentitem type="footer">
<h1>Page #cfdocument.currentPageNumber# of #cfdocument.totalPageCount#</h1>
</cfdocumentitem>
</cfdocumentsection>
</cfoutput>
<cfelse>
<br>
</cfif>
</cfdocument>
This will render PDF and create a blank PDF Page because the query is returning null records and that goes into the clause where a tag is used. This will tell cfdocument that it has some contents, so it will not break and it will show it as an empty PDF. This is still vague, so we use another approach.
<cfif myquery.recordcount>
<cfdocument format="PDF" localURL="yes">
<cfoutput query="myquery">
<!--- Section 1 --->
<cfdocumentsection name="Section1-#myquery.id#">
<cfdocumentitem type="header">
<h1>This is a Header</h1>
</cfdocumentitem>
<table align="center"><tr><td>counter my query</td></tr></table>
<cfdocumentitem type="footer">
<h1>Page #cfdocument.currentPageNumber# of #cfdocument.totalPageCount#</h1>
</cfdocumentitem>
</cfdocumentsection>
<cfdocumentsection name="Section2-#myquery.id#">
<cfdocumentitem type="header">
<h1>2nd header</h1>
</cfdocumentitem>
<table align="center"><tr><td>counter my query 2</td></tr></table>
<cfdocumentitem type="footer">
<h1>Page #cfdocument.currentPageNumber# of #cfdocument.totalPageCount#</h1>
</cfdocumentitem>
</cfdocumentsection>
</cfoutput>
</cfdocument>
<cfelse>
<div align="center">Query is Empty, So PDF cannot be Generated.
</cfif>
Have a question about something in this article? You can receive help directly from the article author. Sign up for a free trial to get started.
Comments (0)