iText - skalowanie obrazu
W tym rozdziale zobaczymy, jak przeskalować obraz w dokumencie PDF za pomocą biblioteki iText.
Skalowanie 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 skalować obraz za pomocąsetAutoScale() metoda.
Poniżej przedstawiono kroki skalowania obrazu istniejącego 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/autoScale.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 PdfDocument klasy, przekazując utworzony powyżej obiekt PdfWriter do jego 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 obiekt jako parametr jego konstruktora, jak pokazano poniżej.
// Creating an Image object
Image img = new Image(data);
Krok 5: Skalowanie obrazu
Możesz skalować obraz za pomocą setAutoScale() metoda.
// Setting the position of the image to the center of the page
image.setFixedPosition(100, 250);
Krok 6: Dodawanie obrazu do dokumentu
Teraz dodaj image obiekt utworzony w poprzednim kroku przy użyciu 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 przedstawia sposób skalowania obrazu odpowiednio do rozmiaru dokumentu w dokumencie PDF przy użyciu biblioteki iText. Tworzy dokument PDF o nazwieautoScale.pdf, dodaje do niej obraz, skaluje go z uwzględnieniem wymiarów strony, zapisuje na ścieżce C:/itextExamples/.
Zapisz ten kod w pliku o nazwie SettingAutoScale.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 SettingAutoScale {
public static void main(String args[]) throws Exception{
// Creating a PdfWriter
String dest = "C:/itextExamples/positionOfImage.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);
// Setting the position of the image to the center of the page
image.setFixedPosition(100,250);
// Adding image to the document
document.add(image);
// Closing the document
document.close();
System.out.println("Image Scaled");
}
}
Skompiluj i uruchom zapisany plik Java z wiersza poleceń, używając następujących poleceń.
javac SettingAutoScale.java
java SettingAutoScale
Po uruchomieniu powyższy program tworzy dokument PDF z następującym komunikatem.
Image Scaled
Jeśli zweryfikujesz określoną ścieżkę, możesz znaleźć utworzony dokument PDF, jak pokazano poniżej.