Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.aspose.pdf.examples;
- import java.awt.image.BufferedImage;
- import java.io.ByteArrayInputStream;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.InputStream;
- import javax.imageio.ImageIO;
- import com.aspose.pdf.*;
- import com.aspose.pdf.facades.PdfFileMend;
- import com.aspose.pdf.operators.*;
- public class ExampleAddImages {
- private static String _dataDir = "/home/aspose/pdf-examples/Samples/";
- public static void AddImageToExistingPDF() throws IOException {
- // Open a document
- Document pdfDocument1 = new Document(_dataDir + "sample.pdf");
- // Set coordinates
- int lowerLeftX = 50;
- int lowerLeftY = 750;
- int upperRightX = 100;
- int upperRightY = 800;
- // 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(_dataDir + "logo.png"));
- // 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 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 ConcatenateMatrix(matrix));
- XImage ximage = page.getResources().getImages().get_Item(page.getResources().getImages().size());
- // Using Do operator: this operator draws image
- page.getContents().add(new Do(ximage.getName()));
- // Using GRestore operator: this operator restores graphics state
- page.getContents().add(new GRestore());
- // Save the new PDF
- pdfDocument1.save(_dataDir + "updated_document.pdf");
- // Close image stream
- imageStream.close();
- }
- public static void AddingImageAndPreserveAspectRatioIntoPDF() throws IOException {
- InputStream imageStream = new FileInputStream("anyImage.jpg");
- BufferedImage originalImage = ImageIO.read(imageStream);
- int width = originalImage.getWidth();
- int height = originalImage.getHeight();
- Document pdfDocument = new Document();
- Page page = pdfDocument.getPages().add();
- int scaledWidth = 400;
- int scaledHeight = scaledWidth * height / width;
- page.addImage(imageStream, new Rectangle(10,10, ));
- }
- public static void AddingImageFromBufferedImageIntoPDF() throws IOException {
- BufferedImage originalImage = ImageIO.read(new File("anyImage.jpg"));
- Document pdfDocument = new Document();
- Page page = pdfDocument.getPages().add();
- page.getResources().getImages().add(originalImage);
- }
- public static void AddingImageFromBufferedImageIntoPDF2() throws IOException {
- BufferedImage originalImage = ImageIO.read(new File("anyImage.jpg"));
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- Document pdfDocument = new Document();
- ImageIO.write(originalImage, "jpg", baos);
- baos.flush();
- Page page = pdfDocument.getPages().get_Item(1);
- page.getResources().getImages().add(new ByteArrayInputStream(baos.toByteArray()));
- }
- public static void AddImageInAnExistingPDFFile_Facades() {
- // Open document
- PdfFileMend mender = new PdfFileMend();
- // Create PdfFileMend object to add text
- mender.bindPdf(_dataDir + "AddImage.pdf");
- // Add image in the PDF file
- mender.addImage(_dataDir + "aspose-logo.jpg", 1, 100, 600, 200, 700);
- // Save changes
- mender.save(_dataDir + "AddImage_out.pdf");
- // Close PdfFileMend object
- mender.close();
- }
- public static void AddReferenceOfaSingleImageMultipleTimes() throws FileNotFoundException {
- Rectangle imageRectangle = new Rectangle(0, 0, 30, 15);
- Document document = new Document(_dataDir + "sample.pdf");
- document.getPages().add();
- document.getPages().add();
- java.io.FileInputStream imageStream = new java.io.FileInputStream(
- new java.io.File(_dataDir + "aspose-logo.png"));
- XImage image = null;
- for (Page page : document.getPages()) {
- WatermarkAnnotation annotation = new WatermarkAnnotation(page, page.getRect());
- XForm form = annotation.getAppearance().get_Item("N");
- form.setBBox(page.getRect());
- String name;
- if (image == null) {
- name = form.getResources().getImages().add(imageStream);
- image = form.getResources().getImages().get_Item(name);
- } else {
- name = form.getResources().getImages().add(image);
- }
- form.getContents().add(new GSave());
- form.getContents().add(new ConcatenateMatrix(
- new Matrix(imageRectangle.getWidth(), 0, 0, imageRectangle.getHeight(), 0, 0)));
- form.getContents().add(new Do(name));
- form.getContents().add(new GRestore());
- page.getAnnotations().add(annotation, false);
- imageRectangle = new Rectangle(0, 0, imageRectangle.getWidth() * 1.01, imageRectangle.getHeight() * 1.01);
- }
- document.save(_dataDir + "output.pdf");
- }
- public static void CheckColors() {
- Document document = new Document(_dataDir + "test4.pdf");
- try {
- // iterate through all pages of PDF file
- for (Page page : (Iterable<Page>) document.getPages()) {
- // create Image Placement Absorber instance
- ImagePlacementAbsorber abs = new ImagePlacementAbsorber();
- page.accept(abs);
- for (ImagePlacement ia : (Iterable<ImagePlacement>) abs.getImagePlacements()) {
- /* ColorType */
- int colorType = ia.getImage().getColorType();
- switch (colorType) {
- case ColorType.Grayscale:
- System.out.println("Grayscale Image");
- break;
- case ColorType.Rgb:
- System.out.println("Colored Image");
- break;
- }
- }
- }
- } catch (Exception ex) {
- System.out.println("Error reading file = " + document.getFileName());
- }
- }
- public static void ControlImageQuality() {
- Document pdfDocument = new Document(_dataDir + "sample_with_images.pdf");
- for (Page page : pdfDocument.getPages()) {
- int idx = 1;
- for (XImage image : page.getResources().getImages()) {
- ByteArrayOutputStream imageStream = new ByteArrayOutputStream();
- ByteArrayInputStream inStream = new ByteArrayInputStream(imageStream.toByteArray());
- image.save(imageStream, ImageType.getJpeg());
- page.getResources().getImages().replace(idx, inStream, 80);
- idx = idx + 1;
- }
- }
- pdfDocument.save(_dataDir + "sample_with_images_out.pdf");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement