How can I prevent page-break in CFDocument from occuring in middle of content?

不羁的心 提交于 2020-01-24 03:25:14

问题


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>

回答1:


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).




回答2:


In case you haven't solved this already, I had the same problem and came across this solutions in the CF8 Live Docs and it seems to have worked for me.

"Simply putting a

<br> 

after the image yet inside the TD worked fine and the images no longer are cut."

http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Tags_d-e_05.html




回答3:


Wrap the contents of your cells with divs (ie. <td><div>Cell contents</div></td>). See my answer on a similar thread: COLDFUSION: cfdocument and forcing a pagebreak



来源:https://stackoverflow.com/questions/654630/how-can-i-prevent-page-break-in-cfdocument-from-occuring-in-middle-of-content

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!