import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.*;
import javax.imageio.ImageIO;
public class PdfEditor {
public static void main(String[] args) throws IOException, DocumentException {
/* example inspired from "iText in action" (2006), chapter 2 */
// input PDF
PdfReader reader = new PdfReader("C:/temp/dummy.pdf");
// output PDF
PdfStamper stamper = new PdfStamper(reader,
new FileOutputStream("C:/temp/dummy_modified.pdf"));
//loop on pages (1-based)
for (int i = 1; i <= reader.getNumberOfPages(); i++) {
// get object for writing over the existing content;
// you can also use getUnderContent for writing in the bottom layer
PdfContentByte pdfContentByte = stamper.getOverContent(i);
// pon la imagen. Juega con las coordinadas ...
float x = reader.getPageSize(i).getWidth() - 400;
float y = reader.getPageSize(i).getHeight() - 200;
com.itextpdf.text.Image image = com.itextpdf.text.Image.getInstance(getImage(), null);
image.setAbsolutePosition(x, y);
pdfContentByte.addImage(image);
}
stamper.close();
}
private static Image getImage() {
File file = new File("c:/temp/panda.jpg");
BufferedImage image = null;
try {
image = ImageIO.read(file);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("done");
return image;
}
}