Работа с изображениями в PDF-документе через Java

Современная библиотека Java для работы с изображениями в PDF с помощью наших API.

Добавить изображение в PDF-документ с помощью библиотеки Java

Чтобы добавить изображение в PDF, мы будем использовать Aspose.PDF for Java API, который представляет собой многофункциональный, мощный и простой в использовании API преобразования для платформы Java. Вы можете загрузить его последнюю версию непосредственно с Maven и установить ее в свой проект на базе Maven, добавив следующие конфигурации в pom.xml.

Repository

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java AP</name>
    <url>https://releases.aspose.com/java/repo/</url>
</repository>

Dependency

<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>version of aspose-pdf API</version>
</dependency>

Добавить изображение в PDF с помощью Java


Вам понадобится Aspose.PDF for Java, чтобы попробовать код в своей среде.

  1. Создайте объект Document и откройте входной PDF-документ.
  2. Найдите страницу, на которую вы хотите добавить изображение.
  3. Добавьте изображение в коллекцию ресурсов страницы.
  4. Используйте оператор GSave для сохранения текущего графического состояния.
  5. Используйте оператор concatenateMatrix, чтобы указать место размещения изображения.
  6. Используйте оператор Do, чтобы нарисовать изображение на странице.
  7. Используйте оператор GREStore для сохранения обновленного графического состояния.
  8. Сохраните PDF-файл.

Добавьте изображение в существующий PDF-файл — Java

Example: Java


    Document pdfDocument = new Document(dataDir+ "AddImage.pdf");

    int lowerLeftX = 100;
    int lowerLeftY = 100;
    int upperRightX = 200;
    int upperRightY = 200;

    Page page = pdfDocument.Pages[1];

    FileStream imageStream = new FileStream(dataDir + "aspose-logo.jpg", FileMode.Open);

    page.Resources.Images.Add(imageStream);

    page.Contents.Add(new Aspose.Pdf.Operators.GSave());

    Aspose.Pdf.Rectangle rectangle = new Aspose.Pdf.Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
    Matrix matrix = new Matrix(new double[] { rectangle.URX - rectangle.LLX, 0, 0, rectangle.URY - rectangle.LLY, rectangle.LLX, rectangle.LLY });

    page.Contents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(matrix));
    XImage ximage = page.Resources.Images[page.Resources.Images.Count];

    page.Contents.Add(new Aspose.Pdf.Operators.Do(ximage.Name));

    page.Contents.Add(new Aspose.Pdf.Operators.GRestore());
    dataDir = dataDir + "AddImage_out.pdf";

    pdfDocument.Save(dataDir);