Question

In my ASP.NET MVC 4 app, I have an index view that has several partial views embedded in it. I installed latest version 1.6.1 of Rotativa via NuGet. Now I can print the index page to a PDF using Rotativa. I would like to have a page break in the PDF after every partial view. How can this be achieved using Rotativa?

I tried to follow this example to use CustomSwitches but there does not seem to be one for page break. I used this article to generate the PDF

Était-ce utile?

La solution

If you are using 1.6.1 you can just add the page breaks in the CSS (this does not work consistently in 1.5.0, I have not tested 1.6.0)

So add this style, not to a specific element like p.breakhere{...} but as shown below (some folks had issues on a specific element)

<STYLE TYPE="text/css">
 .breakhere { page-break-after: always }
</STYLE>

Then in your html just do this

<P CLASS="breakhere">

And it should break nicely. Do be aware that 1.6.1 has a bug with Ghosted images, intermittently... See this SO entry Link

Autres conseils

The answer is correct but you have to do it in a different manner like:

<div style="page-break-after: always;">Content before page breaks</div>
<div>Content after page breaks<div>

This does the trick!

Hope that helps!

You can use any of this three CSS code to set the page break for an element,

page-break-after
page-break-before
page-break-inside

According to your situation.

This works every time for me and in all browsers. My application is ASP.NET MVC3 Razor.

In your style sheet (.css) or in a style tag put this:

@media all {    .page-break { display: none; } }

@media print {  .page-break { display: block; page-break-before: always; } }

Where you want your page to break put this:

<div class="page-break"></div>

Works perfect in all browsers

I found 1.6.1 works locally, but hosted on 2012 R2 windows, a QT 6.2 incompatible version breaks the generation of the application so this was not the solution for me. Instead, i ended up forcing a large margin-top in my css and then that actually forced my content to the top of the next generated page consistently, and therefore achieved my requirement. Strange, but it worked.

Qt: Untested Windows version 6.2 detected!
Error: Failed loading page https://a.b.co.uk/c/d/1(sometimes it will work just to ignore this error with --load-error-handling ignore)

Added this and it force made my new page for the content i needed it to...

<div class="row-fluid page-break" style="margin-top: 800px;">

I think a page height in pixels is 824px, so this pushes it over. It's a workaround, but i've just spent a few hours trying to get this to work, and was about to change Rotativa for another solution, but this was a easier option.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top