java - How to write to an already completed PDF file, using iText -
i 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
Post a Comment