java - How to write to an already completed PDF file, using iText -


my pdfi have pdf file add text or numbers specific positions. pdf has boxes , want put text in specific boxes. use itext , java.

i this, have hard-code x , y of text. want know how find position of paragrafs put text under there.

lpdfcontentbyte content = pdfstamper.getundercontent(1);   columntext ct = new columntext( content );   ct.setsimplecolumn(200,549,500,10);   ct.settext(new phrase("4"));   ct.go(); 

under month days in pdf image, want write something, numbers or text.

it great if tell me how that.

now have 1 solution. can save existing pdf document , add text it, existing pdf 2 pages long , can "scan" first page. how can "scan" both pages of original pdf document?

here code

package pdfmodifier;  import com.itextpdf.text.document; import com.itextpdf.text.documentexception; import com.itextpdf.text.element; import com.itextpdf.text.image; import com.itextpdf.text.pagesize; import com.itextpdf.text.paragraph; import com.itextpdf.text.phrase; import com.itextpdf.text.pdf.acrofields; import com.itextpdf.text.pdf.basefont; import com.itextpdf.text.pdf.columntext; import com.itextpdf.text.pdf.pdfcontentbyte; import com.itextpdf.text.pdf.pdfimportedpage; import com.itextpdf.text.pdf.pdfreader; import com.itextpdf.text.pdf.pdfstamper; import com.itextpdf.text.pdf.pdfwriter; import java.io.fileinputstream;  import java.io.fileoutputstream; import java.io.ioexception; import java.io.inputstream; import java.util.set;  /**  *  * @author xdeveloper  */ public class pdfmodifier {      /**      * @param args command line arguments      */     public static void main(string[] args) {         // todo code application logic here     try {  //create pdf output document document = new document(pagesize.a4); pdfwriter writer = pdfwriter.getinstance(document, new fileoutputstream("c:\\monthreport-stamped.pdf")); document.open(); pdfcontentbyte cb = writer.getdirectcontent();  //load existing pdf inputstream templateinputstream = new fileinputstream("c:\\monthreport.pdf"); pdfreader reader = new pdfreader(templateinputstream); pdfimportedpage page = writer.getimportedpage(reader, 1); //pdfimportedpage page2 = writer.getimportedpage(reader, 2);  //copy first page of existing pdf document.newpage(); cb.addtemplate(page, 0, 0); cb.begintext(); basefont f_cn = basefont.createfont("c:\\calibri.ttf", basefont.cp1252, basefont.not_embedded); cb.setfontandsize(f_cn, 12);  //namn cb.settextmatrix(59, 652);  //(xpos, ypos) string ok = "patrik andersson"; cb.showtext(ok);  //År cb.settextmatrix(257, 712);  //(xpos, ypos) string year = "2015"; cb.showtext(year);   cb.endtext(); //cb.addtemplate(page2, 0, 0);  document.close();      } catch (ioexception e) {       e.printstacktrace();     } catch (documentexception e) {       e.printstacktrace();     }   } } 

ok, can copy both pages existing pdf new destination pdf. think, have need.

int n = reader.getnumberofpages(); system.out.println(n); (int = 1; <= n; i++) {     document.newpage();     page = writer.getimportedpage(reader, i);     cb.addtemplate(page, 0, i);  } 

package pdfmodifier;  import com.itextpdf.text.document; import com.itextpdf.text.documentexception; import com.itextpdf.text.element; import com.itextpdf.text.image; import com.itextpdf.text.pagesize; import com.itextpdf.text.paragraph; import com.itextpdf.text.phrase; import com.itextpdf.text.pdf.acrofields; import com.itextpdf.text.pdf.basefont; import com.itextpdf.text.pdf.columntext; import com.itextpdf.text.pdf.pdfcontentbyte; import com.itextpdf.text.pdf.pdfimportedpage; import com.itextpdf.text.pdf.pdfreader; import com.itextpdf.text.pdf.pdfstamper; import com.itextpdf.text.pdf.pdfwriter; import java.io.fileinputstream;  import java.io.fileoutputstream; import java.io.ioexception; import java.io.inputstream; import java.util.set;  /**  *  * author xdeveloper  */ public class pdfmodifier {      /**      * @param args command line arguments      */      static pdfimportedpage page;     public static void main(string[] args) {      try {         //create output document document = new document(pagesize.a4); pdfwriter writer = pdfwriter.getinstance(document, new fileoutputstream("c:\\monthreport-stamped.pdf")); document.open(); pdfcontentbyte cb = writer.getdirectcontent();  //load existing pdf inputstream templateinputstream = new fileinputstream("c:\\monthreport.pdf"); pdfreader reader = new pdfreader(templateinputstream); int n = reader.getnumberofpages(); system.out.println(n); //copy both pages of existing pdf new destination pdf (int = 1; <= n; i++) {             document.newpage();             page = writer.getimportedpage(reader, i);             cb.addtemplate(page, 0, i);         }  cb.begintext(); basefont f_cn = basefont.createfont("c:\\calibri.ttf", basefont.cp1252,  basefont.not_embedded); cb.setfontandsize(f_cn, 12);  //namn cb.settextmatrix(59, 652); //add text (x-position, y-position) string ok = "patrik andersson"; cb.showtext(ok);  //År cb.settextmatrix(257, 707); string year = "2015"; cb.showtext(year);   cb.endtext();  document.close();      } catch (ioexception e) {       e.printstacktrace();     } catch (documentexception e) {       e.printstacktrace();     }   } } 

Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -