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

Изображения широко используются для различных типов изображений и демонстраций в файлах PDF. В этой статье вы узнаете, как программно управлять изображениями в файлах PDF. В частности, в статье будет рассказано, как добавлять, извлекать, удалять или заменять изображения в файлах PDF с помощью Java.

Java API для добавления изображений в PDF и управления ими — скачать бесплатно

Aspose.PDF for Java — это мощный API, предоставляющий широкий спектр функций для работы с PDF. API позволяет беспрепятственно работать с текстом, аннотациями или изображениями в файлах PDF. Вы можете либо скачать JAR-файл API, либо установить его, используя следующие конфигурации Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>21.2</version>
</dependency>

Добавить изображение в файл PDF в Java

Ниже приведены шаги для добавления изображения в файл PDF на Java.

  • Сначала создайте экземпляр класса Document для загрузки документа PDF.
  • Получите Page, на которую вы хотите добавить изображение, используя метод Document.getPages().get_Item(int).
  • Загрузите файл изображения в объект FileInputStream.
  • Добавьте изображение в ресурсы страницы с помощью метода Page.getResources().getImages().add(FileInputStream).
  • Используйте операторы для размещения изображения на странице:
    1. Оператор GSave для сохранения текущего графического состояния.
    2. Оператор ConcatenateMatrix для указания места размещения изображения.
    3. Оператор Do для отрисовки изображения на странице.
    4. Оператор GRestore для сохранения обновленного графического состояния.
  • Наконец, сохраните обновленный PDF-файл, используя метод Document.save(string).

В следующем примере кода показано, как добавить изображение в файл PDF на Java.

// Откройте документ
Document pdfDocument1 = new Document("input.pdf");

// Установить координаты
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// Получите страницу, на которую вы хотите добавить изображение
Page page = pdfDocument1.getPages().get_Item(1);

// Загрузить изображение в поток
java.io.FileInputStream imageStream = new java.io.FileInputStream(new java.io.File("input_image1.jpg"));

// Добавьте изображение в коллекцию изображений ресурсов страницы.
page.getResources().getImages().add(imageStream);

// Использование оператора GSave: этот оператор сохраняет текущее состояние графики.
page.getContents().add(new Operator.GSave());

// Создание объектов «Прямоугольник» и «Матрица»
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() });

// Использование оператора ConcatenateMatrix (сцепление матрицы): определяет, как должно быть размещено изображение.
page.getContents().add(new Operator.ConcatenateMatrix(matrix));
XImage ximage = page.getResources().getImages().get_Item(page.getResources().getImages().size());

// Использование оператора Do: этот оператор рисует изображение
page.getContents().add(new Operator.Do(ximage.getName()));

// Использование оператора GRestore: этот оператор восстанавливает состояние графики
page.getContents().add(new Operator.GRestore());

// Сохраните новый PDF
pdfDocument1.save("Updated_document.pdf");

// Закрыть поток изображений
imageStream.close();

Извлечение изображений из файла PDF с помощью Java

Ниже приведены шаги для извлечения изображений из документа PDF с помощью Java.

  • Создайте экземпляр класса Document для загрузки документа PDF.
  • Извлеките нужное изображение в объект XImage с помощью метода Document.getPages().get_Item(int).getResources().getImages().get_Item(int).
  • Вы также можете просмотреть коллекцию изображений, чтобы извлечь и сохранить все изображения.
  • Наконец, сохраните извлеченное изображение в виде файла с помощью OutputStream.

В следующем примере кода показано, как извлекать изображения из файлов PDF с помощью Java.

// Откройте документ
Document pdfDocument = new Document("input.pdf");

// Извлечь конкретное изображение
XImage xImage = pdfDocument.getPages().get_Item(1).getResources().getImages().get_Item(1);

// Создайте объект потока, чтобы сохранить выходное изображение
java.io.OutputStream output = new java.io.FileOutputStream("output.jpg");

// Сохраните выходное изображение
xImage.save(output);

// Закрыть поток
output.close();

Удалить изображения из файла PDF с помощью Java

Ниже приведены шаги по удалению изображения из файла PDF с помощью Java.

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

// Откройте документ
Document pdfDocument = new Document("input.pdf");

// Удалить конкретное изображение
pdfDocument.getPages().get_Item(1).getResources().getImages().delete(1);

// Сохраните обновленный файл PDF
pdfDocument.save("output.pdf");

Замените изображение в файле PDF с помощью Java

Ниже приведены шаги по замене изображения в файле PDF с помощью Java.

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

// Откройте документ
Document pdfDocument = new Document("input.pdf");

// Заменить конкретное изображение
pdfDocument.getPages().get_Item(1).getResources().getImages().replace(1, new java.io.FileInputStream(new java.io.File("apose.png")));

// Сохраните обновленный файл PDF
pdfDocument.save("output.pdf");

Java API для добавления изображений в PDF — получите бесплатную лицензию API

Вы можете бесплатно попробовать Aspose.PDF для Java, получив временную лицензию.

Вывод

В этой статье вы узнали, как управлять изображениями в файлах PDF с помощью Java. В пошаговом руководстве и примерах кода показано, как извлекать, добавлять, удалять и заменять изображения в файле PDF. Вы можете изучить другие функции Aspose.PDF для Java, используя документацию. В случае возникновения вопросов вы можете связаться с нами через наш форум.

Смотрите также