iText - Skalieren eines Bildes
In diesem Kapitel erfahren Sie, wie Sie ein Bild in einem PDF-Dokument mithilfe der iText-Bibliothek skalieren.
Skalieren eines Bildes in einem PDF
Sie können ein leeres PDF-Dokument erstellen, indem Sie das instanziieren DocumentKlasse. Während Sie diese Klasse instanziieren, müssen Sie a bestehenPdfDocument Objekt als Parameter für seinen Konstruktor.
Um der PDF-Datei ein Bild hinzuzufügen, erstellen Sie ein Objekt des Bildes, das hinzugefügt werden muss, und fügen Sie es mit der hinzu add() Methode der DocumentKlasse. Sie können ein Bild mit dem skalierensetAutoScale() Methode.
Im Folgenden werden die Schritte zum Skalieren eines im PDF-Dokument vorhandenen Bilds beschrieben.
Schritt 1: Erstellen eines PdfWriter-Objekts
Das PdfWriterKlasse repräsentiert den DocWriter für ein PDF. Diese Klasse gehört zum Paketcom.itextpdf.kernel.pdf. Der Konstruktor dieser Klasse akzeptiert eine Zeichenfolge, die den Pfad der Datei darstellt, in der die PDF erstellt werden soll.
Instanziieren Sie die PdfWriter-Klasse, indem Sie einen Zeichenfolgenwert (der den Pfad darstellt, in dem Sie eine PDF-Datei erstellen müssen) an ihren Konstruktor übergeben (siehe Abbildung unten).
// Creating a PdfWriter
String dest = "C:/itextExamples/autoScale.pdf";
PdfWriter writer = new PdfWriter(dest);
Wenn ein Objekt dieses Typs an ein PdfDocument (Klasse) übergeben wird, wird jedes zu diesem Dokument hinzugefügte Element in die angegebene Datei geschrieben.
Schritt 2: Erstellen eines PdfDocument-Objekts
Das PdfDocumentKlasse ist die Klasse, die das PDF-Dokument in iText darstellt. Diese Klasse gehört zum Paketcom.itextpdf.kernel.pdf. Um diese Klasse zu instanziieren (im Schreibmodus), müssen Sie ein Objekt der Klasse übergebenPdfWriter zu seinem Konstruktor.
Instanziieren Sie die PdfDocument Klasse, indem Sie das oben erstellte PdfWriter-Objekt an den Konstruktor übergeben, wie unten gezeigt.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Sobald ein PdfDocument-Objekt erstellt wurde, können Sie verschiedene Elemente wie Seite, Schriftart, Dateianhang und Ereignishandler mit den entsprechenden Methoden seiner Klasse hinzufügen.
Schritt 3: Erstellen des Dokumentobjekts
Das Document Klasse des Pakets com.itextpdf.layoutist das Stammelement beim Erstellen einer autarken PDF-Datei. Einer der Konstruktoren dieser Klasse akzeptiert ein Objekt der Klasse PdfDocument.
Instanziieren Sie die Document Klasse durch Übergeben des Objekts der Klasse PdfDocument in den vorherigen Schritten erstellt, wie unten gezeigt.
// Creating a Document
Document document = new Document(pdfDoc);
Schritt 4: Erstellen eines Bildobjekts
Um ein Bildobjekt zu erstellen, erstellen Sie zunächst ein ImageData Objekt mit dem create() Methode der ImageDataFactoryKlasse. Übergeben Sie als Parameter dieser Methode einen Zeichenfolgenparameter, der den Pfad des Bildes darstellt, wie unten gezeigt.
// Creating an ImageData object
String imageFile = "C:/itextExamples/javafxLogo.jpg";
ImageData data = ImageDataFactory.create(imageFile);
Jetzt instanziieren Sie die Image Klasse der com.itextpdf.layout.elementPaket. Übergeben Sie beim Instanziieren dieImageData Objekt als Parameter für seinen Konstruktor, wie unten gezeigt.
// Creating an Image object
Image img = new Image(data);
Schritt 5: Skalieren eines Bildes
Sie können ein Bild mit dem skalieren setAutoScale() Methode.
// Setting the position of the image to the center of the page
image.setFixedPosition(100, 250);
Schritt 6: Hinzufügen eines Bildes zum Dokument
Fügen Sie nun die hinzu image Objekt, das im vorherigen Schritt mit dem erstellt wurde add() Methode der Document Klasse, wie unten gezeigt.
// Adding image to the document
document.add(img);
Schritt 7: Schließen des Dokuments
Schließen Sie das Dokument mit der close() Methode der Document Klasse, wie unten gezeigt.
// Closing the document
document.close();
Beispiel
Das folgende Java-Programm zeigt, wie Sie ein Bild mithilfe der iText-Bibliothek entsprechend der Dokumentgröße in einem PDF-Dokument skalieren. Es wird ein PDF-Dokument mit dem Namen erstelltautoScale.pdf, fügt ein Bild hinzu, skaliert es in Bezug auf die Seitenabmessungen und speichert es im Pfad C:/itextExamples/.
Speichern Sie diesen Code in einer Datei mit Namen 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");
}
}
Kompilieren Sie die gespeicherte Java-Datei und führen Sie sie mit den folgenden Befehlen an der Eingabeaufforderung aus.
javac SettingAutoScale.java
java SettingAutoScale
Bei der Ausführung erstellt das obige Programm ein PDF-Dokument mit der folgenden Meldung.
Image Scaled
Wenn Sie den angegebenen Pfad überprüfen, finden Sie das erstellte PDF-Dokument wie unten gezeigt.