'How to edit the contents of an existing PDF programmatically in JAVA [closed]
Solution 1:[1]
    PdfReader reader = new PdfReader("./the-pdf-where-you-want-to-insert-into.pdf");
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("./destination.pdf"));
    PdfReader r = new PdfReader("./the-pdf-you-want-to-insert.pdf");
    PdfImportedPage page = stamper.getImportedPage(r, 1);
    Image instance = Image.getInstance(page);
    AffineTransform at = AffineTransform.getTranslateInstance(x, y); // x y positions where you want insert
    at.concatenate(AffineTransform.getScaleInstance(instance.getScaledWidth(), instance.getScaledHeight()));
    PdfContentByte canvas = stamper.getOverContent(1);
    canvas.addImage(instance, at);
    stamper.close();
    reader.close();
    					Solution 2:[2]
With PdfReader and PdfWriter from iText, you can load a PDF file, do some modification then write it to another location.
Sample code:
    String srcPdf = "source-path.pdf";
    String destPdf = "destination-path.pdf";
    PdfReader reader = new PdfReader(srcPdf);
    PdfWriter writer = new PdfWriter(destPdf);
    try (PdfDocument pdfDocument = new PdfDocument(reader, writer)) {
        PdfPage page = pdfDocument.getPage(1);
        // change pdf file starts here
        String imgPath = "image-path.jpg";
        ImageData imageData = ImageDataFactory.create(imgPath);
        // create page canvas
        PdfCanvas pdfCanvas = new PdfCanvas(page);
        // create AT
        AffineTransform at = AffineTransform.getTranslateInstance(page.getPageSize().getWidth() / 10, page.getPageSize().getHeight() / 10);
        at.concatenate(AffineTransform.getScaleInstance(page.getPageSize().getWidth() * 8 / 10, page.getPageSize().getHeight() * 8 / 10));
        float[] matrix = new float[6];
        at.getMatrix(matrix);
        // add image data
        pdfCanvas.addImageWithTransformationMatrix(imageData, matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);
        pdfCanvas.release();
    }
    					Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source | 
|---|---|
| Solution 1 | Mahesh | 
| Solution 2 | leoleozhu | 

