I am generating a PDF file dynamically from html/css using the cfdocument tag. There are blocks of content that I don’t want to span multiple pages.
After some searching I found that the style ‘page-break-inside’ is supported according to the docs. However in my testing the declaration ‘page-break-inside: avoid’ does no good.
Any suggestions on getting this style declaration to work, or have alternative suggestions?
Here is an example. I would expect the content in the div tag not to span a page break but it does. The style ‘page-break-inside: avoid’ is not being honored.
<cfdocument format='flashpaper'> <cfloop from='1' to='10' index='i'> <div style='page-break-inside: avoid'> <h1>Table Label</h1> <table> <tr><td>label</td><td>data</td></tr> <tr><td>label</td><td>data</td></tr> <tr><td>label</td><td>data</td></tr> <tr><td>label</td><td>data</td></tr> <tr><td>label</td><td>data</td></tr> <tr><td>label</td><td>data</td></tr> <tr><td>label</td><td>data</td></tr> <tr><td>label</td><td>data</td></tr> <tr><td>label</td><td>data</td></tr> </table> </div> </cfloop> </cfdocument>
Not an ideal solution, but I’ve forced page breaks before blocks that need to be kept together. Use page-break-before to trigger a page break before the block.
I don’t think there is a way to specifically forbid breaking within (that is honored by the PDF engine).