pdf - How to rotate Document pages to come out landscape? -


i'm using mpl/lgpl version of itext library (the 1 released in july 2009) download pdfs through web application. issue gsp being rendered on pdf has landscape layout. have code:

public void mergemultiplepdffiles(list<string> filenames, outputstream os, string filedirectory, boolean islandscape = false) {     fileinputstream     pdfreader pdfreader     pdfwriter pdfwriter     com.lowagie.text.document document      try {         document = new com.lowagie.text.document(islandscape ? pagesize.letter.rotate() : pagesize.letter)          pdfwriter = pdfwriter.getinstance(document, os)         document.open()         pdfimportedpage page         pdfcontentbyte cb = pdfwriter.getdirectcontent() // holds pdf          filenames.each { filename ->             def filepath = filedirectory + filename + ".pdf"             = new fileinputstream(filepath)             pdfreader = new pdfreader(is)              for(int = 1; <= pdfreader.getnumberofpages(); i++) {                 document.newpage()                 page = pdfwriter.getimportedpage(pdfreader, i)                 //cb.addtemplate(page, 0.0, -1f, 1f, 0.0, 0.0, pdfreader.getpagesizewithrotation(i).height);                 cb.addtemplate(page, 0, 0);             }             is.close()             pdfreader.close();              file file = new file(filepath)             file.delete()         }     }     catch (exception e) {         log.error("error generating pdf.")         //e.printstacktrace()         throw e     }     {         if (document.isopen())             document.close()          try {             if (os != null) os.close()             if (is != null) is.close()             if (pdfreader != null) pdfreader.close()             if (pdfwriter != null) pdfwriter.close()          } catch (ioexception ioe) {             ioe.printstacktrace();         }     } } 

this code creates pdf rendered page in portrait. so, user has rotate pdf landscape read document. want have pdf rotated landscape before downloading file. i've attempted many solution such as: document = new com.lowagie.text.document(pagesize.letter.rotate())

or alternatively, document.setpagesize(pagesize.letter.rotate())

these 2 solution cause pdf set landscape text cut off in portrait view. also,

and rot = pdfreader.getpagerotation(i); pagedict = pdfreader.getpagen(i); pagedict.put(pdfname.rotate, new pdfnumber(rot + 90)); rot = pdfreader.getpagerotation(i);

none of these suggested solutions work.

thanks bruno's comment got document downloaded in landscape. here code:

public void mergemultiplepdffiles(list<string> filenames, outputstream os, string filedirectory, boolean islandscape = false) {     fileinputstream     pdfreader pdfreader     com.lowagie.text.document document      try {         document = new com.lowagie.text.document()         pdfcopy copy = new pdfcopy(document, os);         document.open();         pdfimportedpage page;         chunk chunk;          filenames.each { filename ->             def filepath = filedirectory + filename + ".pdf"             = new fileinputstream(filepath)             pdfreader = new pdfreader(is)             for(int = 1; <= pdfreader.getnumberofpages(); i++) {                  page = copy.getimportedpage(pdfreader, i);                 copy.addpage(page);             }             copy.freereader(pdfreader);             is.close()             pdfreader.close();              file file = new file(filepath)             file.delete()         }     }     catch (exception e) {         log.error("error generating pdf.")         //e.printstacktrace()         throw e     }     {         if (document.isopen())             document.close()          try {             if (os != null) os.close()             if (is != null) is.close()             if (pdfreader != null) pdfreader.close()          } catch (ioexception ioe) {             ioe.printstacktrace();         }     }  } 

key change using pdfcopy instead of pdfwriter , pdfcontentbyte used.


Comments

Popular posts from this blog

searchKeyword not working in AngularJS filter -

sequelize.js - Sequelize: sort by enum cases -

user interface - how to replace an ongoing process of image capture from another process call over the same ImageLabel in python's GUI TKinter -