Skip to content Skip to sidebar Skip to footer

Html To Pdf - Page Break With Pdfsharp And Htmlrenderer

I try to convert HTML to PDF using PdfSharp and HtmlRenderer. This is part of code: private byte[] CreateHtmlContent() { string htmlContent = File.ReadAllText(@'htmlExample.txt

Solution 1:

I had a similar challenge and resolved it as I found this pull request on github: https://github.com/ArthurHub/HTML-Renderer/pull/41

You can set the custom-css-property

td { page-break-inside: avoid; }

on all elements or selectors you want (td, p, .my-class, etc.) to control the page breaking.

You can use the value "auto" if you want the library to control your page breaking on certain elements

td { page-break-inside: auto; }

There is also a example for page breaking in running text.

Solution 2:

This is a little late, but I ran into the same issue. The problem is the margin set on the GeneratePdf call. Remove it and it's fine.

PdfDocumentpdf= PdfGenerator.GeneratePdf(htmlContent, PdfSharp.PageSize.A4);

Solution 3:

You can use the prerelase version in Nuget (1.5.1-beta1) and then:

td { page-break-inside: avoid; }

Solution 4:

This is also resolved by adding an appropriate DIV tag if you're not using tables.

foreach (DataRow row ingroup)
            {
                HTMLoutput += "<div style=\"page-break-inside: avoid\"> ";
                HTMLoutput += "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
                HTMLoutput += "</div>";
            }

Solution 5:

table{
    page-break-inside: avoid;    
}

When I used this CSS I was facing this issue.

enter image description here

So what I did? I just set also

table{
border:none;
}

if you want to show the border for a specific table also, you can use inline CSS or set border by using a specific table id.

Here is the final result of the pdf generated using pdfsharp.

enter image description here

Post a Comment for "Html To Pdf - Page Break With Pdfsharp And Htmlrenderer"