iText - поворот изображения

В этой главе мы увидим, как вставить изображение в документ PDF и как повернуть это изображение, используя функции, доступные в библиотеке iText.

Поворот изображения в PDF

Вы можете создать пустой PDF-документ, создав экземпляр Documentкласс. При создании экземпляра этого класса вам необходимо передатьPdfDocument объект в качестве параметра его конструктора.

Чтобы добавить изображение в PDF, создайте объект изображения, который требуется добавить, и добавьте его, используя add() метод Documentкласс. Вы можете повернуть изображение, используяsetRotationAngle() метод.

Ниже приведены шаги по повороту изображения в документе PDF.

Шаг 1. Создание объекта PdfWriter

В PdfWriterКласс представляет DocWriter для PDF. Этот класс принадлежит пакетуcom.itextpdf.kernel.pdf. Конструктор этого класса принимает строку, представляющую путь к файлу, в котором должен быть создан PDF.

Создайте экземпляр класса PdfWriter, передав строковое значение (представляющее путь, по которому вам нужно создать PDF-файл) в его конструктор, как показано ниже.

// Creating a PdfWriter 
String dest = "C:/itextExamples/rotatingImage.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Когда объект этого типа передается в PdfDocument (класс), каждый элемент, добавленный в этот документ, будет записан в указанный файл.

Шаг 2: Создание объекта PdfDocument

В PdfDocumentclass - это класс, представляющий PDF-документ в iText. Этот класс принадлежит пакетуcom.itextpdf.kernel.pdf. Чтобы создать экземпляр этого класса (в режиме записи), вам необходимо передать объект классаPdfWriter своему конструктору.

Создайте экземпляр класса PdfDocument, передав объект PdfWriter его конструктору, как показано ниже.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

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

Шаг 3: Создание объекта документа

В Document класс пакета com.itextpdf.layoutявляется корневым элементом при создании самодостаточного PDF. Один из конструкторов этого класса принимает объект класса PdfDocument.

Создайте экземпляр Document class, передав объект класса PdfDocument созданный на предыдущих шагах, как показано ниже.

// Creating a Document   
Document document = new Document(pdfDoc);

Шаг 4: Создание объекта изображения

Чтобы создать объект изображения, прежде всего, создайте ImageData объект с помощью create()метод ImageDataFactoryкласс. В качестве параметра этого метода передайте строковый параметр, представляющий путь к изображению, как показано ниже.

// Creating an ImageData object 
String imageFile = "C:/itextExamples/javafxLogo.jpg"; 
ImageData data = ImageDataFactory.create(imageFile);

Теперь создайте экземпляр Image класс com.itextpdf.layout.elementпакет. При создании экземпляра передайтеImageData objectв качестве параметра его конструктора, как показано ниже.

// Creating an Image object 
Image img = new Image(data);

Шаг 5: поворот изображения

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

// Rotating the image 
image.setRotationAngle(45);

Шаг 6: Добавление изображения в документ

Теперь добавьте объект изображения, созданный на предыдущем шаге, используя add() метод Document класс, как показано ниже.

// Adding image to the document 
document.add(img);

Шаг 7: закрытие документа

Закройте документ, используя close() метод Document класс, как показано ниже.

// Closing the document 
document.close();

пример

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

Создает PDF-документ с именем rotatingImage.pdf, добавляет к нему изображение, поворачивает его и сохраняет в пути C:/itextExamples/.

Сохраните этот код в файле с именем RotatingImage.java.

import com.itextpdf.io.image.ImageData; 
import com.itextpdf.io.image.ImageDataFactory; 

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Image;  

public class RotatingImage {    
   public static void main(String args[]) throws Exception {              
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/rotatingImage.pdf";       
      PdfWriter writer = new PdfWriter(dest);               
      
      // Creating a PdfDocument       
      PdfDocument pdfDoc = new PdfDocument(writer);              
      
      // Creating a Document        
      Document document = new Document(pdfDoc);              
      
      // Creating an ImageData object       
      String imFile = "C:/itextExamples/logo.jpg";       
      ImageData data = ImageDataFactory.create(imFile);              
      
      // Creating an Image object        
      Image image = new Image(data);                
      
      // Rotating the image       
      image.setRotationAngle(45);                       
      
      // Adding image to the document       
      document.add(image);              
      
      // Closing the document       
      document.close(); 
      
      System.out.println("Image rotated");    
   } 
}

Скомпилируйте и выполните сохраненный файл Java из командной строки, используя следующие команды:

javac RotatingImage.java 
java RotatingImage

После выполнения вышеуказанная программа создает PDF-документ, в котором отображается следующее сообщение.

Image Rotated

Если вы проверите указанный путь, вы сможете найти созданный документ PDF, как показано ниже.