package com.aspose.pdf.examples.AsposePdfExamples.Images; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import com.aspose.pdf.Document; import com.aspose.pdf.Matrix; import com.aspose.pdf.Operator; import com.aspose.pdf.Page; import com.aspose.pdf.Rectangle; import com.aspose.pdf.XImage; public class AddImageToExistingPDFFile { public static void main(String[] args) throws IOException { addImageToExistingPDFFile(); addingImageFromBufferedImageIntoPDF(); } public static void addImageToExistingPDFFile() throws IOException { // Open a document Document pdfDocument1 = new Document("input.pdf"); // Set coordinates int lowerLeftX = 100; int lowerLeftY = 100; int upperRightX = 200; int upperRightY = 200; // Get the page you want to add the image to Page page = pdfDocument1.getPages().get_Item(1); // Load image into stream java.io.FileInputStream imageStream = new java.io.FileInputStream(new java.io.File("input_image1.jpg")); // Add an image to the Images collection of the page resources page.getResources().getImages().add(imageStream); // Using the GSave operator: this operator saves current graphics state page.getContents().add(new Operator.GSave()); // Create Rectangle and Matrix objects Rectangle rectangle = new Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY); Matrix matrix = new Matrix(new double[] { rectangle.getURX() - rectangle.getLLX(), 0, 0, rectangle.getURY() - rectangle.getLLY(), rectangle.getLLX(), rectangle.getLLY() }); // Using ConcatenateMatrix (concatenate matrix) operator: defines how // image must be placed page.getContents().add(new Operator.ConcatenateMatrix(matrix)); XImage ximage = page.getResources().getImages().get_Item(page.getResources().getImages().size()); // Using Do operator: this operator draws image page.getContents().add(new Operator.Do(ximage.getName())); // Using GRestore operator: this operator restores graphics state page.getContents().add(new Operator.GRestore()); // Save the new PDF pdfDocument1.save("Updated_document.pdf"); // Close image stream imageStream.close(); } public static void addingImageFromBufferedImageIntoPDF() throws IOException { BufferedImage originalImage = ImageIO.read(new File("anyImage.jpg")); Document pdfDocument1 = new Document(); Page page2 = pdfDocument1.getPages().add(); page2.getResources().getImages().add(originalImage); } /* * //Info BufferedImage originalImage = ImageIO.read(new File("AnyImage.jpg")); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(originalImage, "jpg", baos); baos.flush(); Page page2 = pdfDocument1.getPages().get_Item(i + 1); page2.getResources().getImages().add(new ByteArrayInputStream(baos.toByteArray())); //Info */ }