PDF Creation / Manipulation in JAVA
Kushal Paudyal January 10th, 2010
Writing to PDF is very easy with Lowagie’s iText package. You can download the iText.jar required for the following program here.
Program below demonstrates how easily one can create, update and manipulate pdf files (including pdf merging) in Java.
package com.kushal.util;
import java.io.FileOutputStream;
import java.util.HashMap;
import com.lowagie.text.Element;
import com.lowagie.text.Image;
import com.lowagie.text.PageSize;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfStamper;
public class PDFManipulation {
public static void main(String[] args) {
try {
// we create a reader for a certain document
PdfReader reader = new PdfReader(
"D:/GeneralWs/utilities/com/kushal/util/FormToFill.pdf");
int n = reader.getNumberOfPages();
// we create a stamper that will copy the document to a new file
PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(
"myOutPutFile.pdf"));
// adding some metadata
HashMap moreInfo = new HashMap();
moreInfo.put("Author", "Kushal Paudyal");
stamp.setMoreInfo(moreInfo);
// adding content to each page
int i = 0;
PdfContentByte under;
PdfContentByte over;
Image img = Image
.getInstance("D:/GeneralWs/utilities/com/kushal/util/Flood.jpg");
BaseFont bf = BaseFont.createFont(BaseFont.TIMES_ROMAN,
BaseFont.WINANSI, BaseFont.EMBEDDED);
img.setAbsolutePosition(400, 400);
while (i < n) {
i++;
// watermark under the existing page
under = stamp.getUnderContent(i);
under.addImage(img);
// text over the existing page
over = stamp.getOverContent(i);
over.beginText();
over.setFontAndSize(bf, 18);
over.setTextMatrix(30, 30);
over.showText("page " + i);
over.setFontAndSize(bf, 26);
over.showTextAligned(Element.ALIGN_LEFT,
"12N00607", 400, 730,0);
over.endText();
}
// adding an extra page
stamp.insertPage(1, PageSize.A4);
over = stamp.getOverContent(1);
over.beginText();
over.setFontAndSize(bf, 18);
over.showTextAligned(Element.ALIGN_LEFT,
"DUPLICATE OF AN EXISTING PDF DOCUMENT", 30, 600, 0);
over.endText();
// adding a page from another document
PdfReader rdr = new PdfReader("C:/secondFile.pdf");
under = stamp.getUnderContent(1);
under.addTemplate(stamp.getImportedPage(rdr, 3), 1, 0, 0, 1, 0,
0);
// closing PdfStamper will generate the new PDF file
stamp.close();
} catch (Exception de) {
de.printStackTrace();
}
}
}
Sanjaal.com is owned and maintained by Sanjaal Corps, Nepal. The company offers Webhosting and Domain Registration Services, IT Solutions and Business Analysis. Sanjaal.com website features H1B Visa Information, Entertainment Portal, Link Directory Service, Free Articles, Free Open Source Tutorials on Java and J2EE Platform, Digital Photography, High Resolution Picture Gallery and Free Reliable Image Hosting Services. Future plan includes Open Source Software Development Portal, Technical Solutions and Customizable Movie and Music Arena. We would be introducing data backup, data recovery, data hosting and voip solutions. Stay free from phishing - our website does not ask for your credit card and banking information. Happy Surfing!
Originally posted 2008-06-27 13:50:50.
