knp_snappy page break in generated PDF
Asked Answered
T

2

11

I'm working on Symfony2 project to generate PDF from HTML view. Following is from config.yml

knp_snappy:
pdf:
    enabled:    true
    binary:     /path/to/my/wkhtmltopdf
    options:
        no-stop-slow-scripts: ~
        enable-javascript: ~
        use-xserver: ~
        page-size: A4
        dpi: 300

Now I want to know if the DIV is overlapping on the page edges, if so add a page break before DIV. It is currently displaying as follow.

enter image description here

I've tried to get the height of DIVs and compare it with height of page, but it didn't work.

Is there any solution to know when DIV is overlapping or auto breaking the page when something is overlapping ?

Treasurer answered 8/10, 2015 at 10:12 Comment(0)
S
16

Try to add style "page-break-inside" to your div:

<div style="page-break-inside: avoid;">
    ... content ...
</div>

wkhtmltopdf uses webkit engine. This fact allows you to use styles to control the looks of your PDF.

Severn answered 8/10, 2015 at 14:19 Comment(4)
I've already tried this, page-break-inside. But it seems not working, may be it unable to determine when particular DIV is overlapping.Treasurer
This solved my problem. I was giving 'auto' for page-break-inside, 'avoid' works like a charm!Treasurer
I had been fighting with this for hours!!! this completely made my day. thank youSoupspoon
FYI I think this will not work if parent has display: flex #34534731Putnem
C
7

I use Bootstrap for layout styling. To do page breaks works only (for me):

<p style="page-break-after: always;"/>
<br/>
Carryingon answered 28/11, 2018 at 8:7 Comment(2)
What do you mean with "has no effect"?Benzine
@EmilVikström sorry, I updated my answer. I copied my answer wrong from my code.Carryingon

© 2022 - 2024 — McMap. All rights reserved.