iText - Obracanie obrazu

W tym rozdziale zobaczymy, jak wstawić obraz do dokumentu PDF i jak obrócić ten obraz, korzystając z funkcji dostępnych w bibliotece iText.

Obracanie obrazu w pliku PDF

Możesz utworzyć pusty dokument PDF, tworząc wystąpienie Documentklasa. Podczas tworzenia instancji tej klasy musisz przekazać plikPdfDocument obiekt jako parametr jego konstruktora.

Aby dodać obraz do pliku PDF, utwórz obiekt obrazu, który ma zostać dodany, i dodaj go za pomocą rozszerzenia add() metoda Documentklasa. Możesz obrócić obraz za pomocąsetRotationAngle() metoda.

Poniżej przedstawiono kroki, aby obrócić obraz w dokumencie PDF.

Krok 1: Tworzenie obiektu PdfWriter

Plik PdfWriterreprezentuje DocWriter dla pliku PDF. Ta klasa należy do pakietucom.itextpdf.kernel.pdf. Konstruktor tej klasy akceptuje ciąg znaków reprezentujący ścieżkę do pliku, w którym ma zostać utworzony plik PDF.

Utwórz wystąpienie klasy PdfWriter, przekazując wartość ciągu (reprezentującą ścieżkę, w której należy utworzyć plik PDF) do jej konstruktora, jak pokazano poniżej.

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

Gdy obiekt tego typu jest przekazywany do PdfDocument (klasy), każdy element dodany do tego dokumentu zostanie zapisany w określonym pliku.

Krok 2: Tworzenie obiektu PdfDocument

Plik PdfDocumentclass to klasa reprezentująca dokument PDF w iText. Ta klasa należy do pakietucom.itextpdf.kernel.pdf. Aby utworzyć instancję tej klasy (w trybie pisania), musisz przekazać obiekt tej klasyPdfWriter do swojego konstruktora.

Utwórz wystąpienie klasy PdfDocument, przekazując obiekt PdfWriter do jej konstruktora, jak pokazano poniżej.

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

Po utworzeniu obiektu PdfDocument można dodać różne elementy, takie jak strona, czcionka, załącznik do pliku i moduł obsługi zdarzeń, używając odpowiednich metod udostępnionych przez jego klasę.

Krok 3: Tworzenie obiektu dokumentu

Plik Document klasa pakietu com.itextpdf.layoutjest elementem głównym podczas tworzenia samowystarczalnego pliku PDF. Jeden z konstruktorów tej klasy akceptuje obiekt klasy PdfDocument.

Utwórz wystąpienie Document class poprzez przekazanie obiektu klasy PdfDocument utworzone w poprzednich krokach, jak pokazano poniżej.

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

Krok 4: Tworzenie obiektu obrazu

Aby utworzyć obiekt obrazu, najpierw utwórz plik ImageData obiekt za pomocą create()metoda ImageDataFactoryklasa. Jako parametr tej metody przekaż parametr ciągu reprezentujący ścieżkę obrazu, jak pokazano poniżej.

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

Teraz utwórz wystąpienie Image klasa com.itextpdf.layout.elementpakiet. Podczas tworzenia wystąpienia przekaż plikImageData object, jako parametr jego konstruktora, jak pokazano poniżej.

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

Krok 5: Obracanie obrazu

Możesz obrócić obraz za pomocą setRotationAngle()metoda. W tej metodzie musisz podać liczbę całkowitą reprezentującą kąt obrotu, o który chcesz obrócić obraz.

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

Krok 6: Dodawanie obrazu do dokumentu

Teraz dodaj obiekt obrazu utworzony w poprzednim kroku przy użyciu rozszerzenia add() metoda Document klasa, jak pokazano poniżej.

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

Krok 7: Zamknięcie dokumentu

Zamknij dokument za pomocą close() metoda Document klasa, jak pokazano poniżej.

// Closing the document 
document.close();

Przykład

Poniższy program w języku Java demonstruje, jak obrócić obraz o określony kąt w dokumencie PDF za pomocą biblioteki iText.

Tworzy dokument PDF o nazwie rotatingImage.pdf, dodaje do niego obraz, obraca go i zapisuje na ścieżce C:/itextExamples/.

Zapisz ten kod w pliku o nazwie 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");    
   } 
}

Skompiluj i uruchom zapisany plik Java z wiersza polecenia, używając następujących poleceń -

javac RotatingImage.java 
java RotatingImage

Po uruchomieniu powyższy program tworzy dokument PDF z następującym komunikatem.

Image Rotated

Jeśli zweryfikujesz określoną ścieżkę, możesz znaleźć utworzony dokument PDF, jak pokazano poniżej.