iText 5.5.x - Java - page breaks -


how can add page breaks document using java itext 5.5.x using y position on page? have overridden div class use custom html tag, denotes content keep (because conformance list [http://demo.itextsupport.com/xmlworker/itextdoc/css-conformance-list.htm] indicates page breaks in html must 'always'). can't seem establish how break when content greater size want on page. pdf generation not using "standard" way of creating pdf, getting content parsing html file.

below have div class:

class pagebreak extends div { private document document; private pdfwriter writer; private float breakpoint; private float signaturearea = 80;  public pagebreak(document document, pdfwriter writer) {     this.document = document;     this.writer = writer;     this.breakpoint = (document.top() - signaturearea - 40 /*padding*/); }  @override public list<com.itextpdf.text.element> end(workercontext ctx, tag tag, list<com.itextpdf.text.element> currentcontent) {     system.out.println("end pos: " + writer.getverticalposition(true));     system.out.println("writer.getverticalposition(true) " + writer.getverticalposition(true));     system.out.println("breakpoint: " + breakpoint);      boolean newpage = writer.getverticalposition(true) > breakpoint;      if(newpage) {         system.out.println("breaking");         document.newpage();     }      return currentcontent; }  @override public list<com.itextpdf.text.element> start(workercontext ctx, tag tag) {     system.out.println("start pos: " + writer.getverticalposition(true));     system.out.println("writer.getverticalposition(true) " + writer.getverticalposition(true));     system.out.println("breakpoint: " + breakpoint);     return new arraylist<com.itextpdf.text.element>(0);   }} 

an example of html:

 <pagebreak>  <table><tr><td class="section-h3">a table</td></tr></table>  <table>  <tr>  <td class="withback-70">reviewed by</td>  <td class="withoutback-70">jim</td>  </tr>  </table>  </pagebreak> 

this code convert / parse html pdf:

    document document = new document();     pdfwriter writer = pdfwriter.getinstance(document, outputstream);     writer.setpageevent(new headerfooter(mappedmasterincident));     document.setpagesize(pagesize.letter);     document.setmargins(18, 18, 18, 95);     document.open();      htmlpipelinecontext htmlcontext = new htmlpipelinecontext(null);     //not working     //tagprocessorfactory factory = tags.gethtmltagprocessorfactory();     //factory.addprocessor(new pagebreak(document, writer), "pagebreak");     //htmlcontext.settagfactory(factory);     htmlcontext.settagfactory(tags.gethtmltagprocessorfactory());     htmlcontext.setimageprovider(new base64imageprovider());      cssresolver cssresolver = new styleattrcssresolver();     cssresolver.addcssfile("file:///c|/users/jim.willmore/desktop/pdf.css", true);     pipeline<?> pipeline = new cssresolverpipeline(cssresolver,new htmlpipeline(htmlcontext, new pdfwriterpipeline(document, writer)));      xmlworker worker = new xmlworker(pipeline, true);     xmlparser p = new xmlparser( worker);     p.parse(templatereader);      document.close(); 


Comments

Popular posts from this blog

javascript - Bootstrap Popover: iOS Safari strange behaviour -

Magento/PHP - Get phones on all members in a customer group -

session - Logging Out Using PHP -