PDFBox - Kurzanleitung
Das Portable Document Format (PDF) ist ein Dateiformat, mit dessen Hilfe Daten unabhängig von Anwendungssoftware, -hardware und -betriebssystemen dargestellt werden können.
Jede PDF-Datei enthält eine Beschreibung eines flachen Dokuments mit festem Layout, einschließlich Text, Schriftarten, Grafiken und anderen Informationen, die für die Anzeige erforderlich sind.
Es stehen mehrere Bibliotheken zum Erstellen und Bearbeiten von PDF-Dokumenten über Programme zur Verfügung, z.
Adobe PDF Library - Diese Bibliothek bietet API in Sprachen wie C ++, .NET und Java. Mit dieser können wir Text aus PDF-Dokumenten bearbeiten, anzeigen, drucken und extrahieren.
Formatting Objects Processor- Open-Source-Druckformatierer, der von XSL-Formatierungsobjekten und einem ausgabeunabhängigen Formatierer gesteuert wird. Das primäre Ausgabeziel ist PDF.
iText - Diese Bibliothek bietet API in Sprachen wie Java, C # und anderen .NET-Sprachen. Mit dieser Bibliothek können wir PDF-, RTF- und HTML-Dokumente erstellen und bearbeiten.
JasperReports - Dies ist ein Java-Berichtstool, das Berichte in PDF-Dokumenten generiert, einschließlich Microsoft Excel, RTF, ODT, durch Kommas getrennte Werte und XML-Dateien.
Was ist eine PDFBox?
Apache PDFBox ist eine Open-Source-Java-Bibliothek, die die Entwicklung und Konvertierung von PDF-Dokumenten unterstützt. Mit dieser Bibliothek können Sie Java-Programme entwickeln, die PDF-Dokumente erstellen, konvertieren und bearbeiten.
Darüber hinaus enthält PDFBox ein Befehlszeilenprogramm zum Ausführen verschiedener Operationen über PDF mithilfe der verfügbaren Jar-Datei.
Funktionen der PDFBox
Im Folgenden sind die bemerkenswerten Funktionen von PDFBox aufgeführt:
Extract Text - Mit PDFBox können Sie Unicode-Text aus PDF-Dateien extrahieren.
Split & Merge - Mit PDFBox können Sie eine einzelne PDF-Datei in mehrere Dateien aufteilen und als einzelne Datei wieder zusammenführen.
Fill Forms - Mit PDFBox können Sie die Formulardaten in ein Dokument einfügen.
Print - Mit PDFBox können Sie eine PDF-Datei mit der Standard-Java-Druck-API drucken.
Save as Image - Mit PDFBox können Sie PDFs als Bilddateien wie PNG oder JPEG speichern.
Create PDFs - Mit PDFBox können Sie eine neue PDF-Datei erstellen, indem Sie Java-Programme erstellen, und Sie können auch Bilder und Schriftarten einfügen.
Signing- Mit PDFBox können Sie den PDF-Dateien digitale Signaturen hinzufügen.
Anwendungen von PDFBox
Das Folgende sind die Anwendungen von PDFBox -
Apache Nutch- Apache Nutch ist eine Open-Source-Web-Suchsoftware. Es baut auf Apache Lucene auf und fügt Web-Besonderheiten wie einen Crawler, eine Link-Graph-Datenbank, Parser für HTML und andere Dokumentformate usw. hinzu.
Apache Tika - Apache Tika ist ein Toolkit zum Erkennen und Extrahieren von Metadaten und strukturiertem Textinhalt aus verschiedenen Dokumenten unter Verwendung vorhandener Parser-Bibliotheken.
Komponenten der PDFBox
Das Folgende sind die vier Hauptkomponenten von PDFBox -
PDFBox- Dies ist der Hauptteil der PDFBox. Dies enthält die Klassen und Schnittstellen, die sich auf das Extrahieren und Bearbeiten von Inhalten beziehen.
FontBox - Dies enthält die Klassen und Schnittstellen, die sich auf die Schriftart beziehen. Mit diesen Klassen können wir die Schriftart des Textes des PDF-Dokuments ändern.
XmpBox - Dies enthält die Klassen und Schnittstellen, die XMP-Metadaten verarbeiten.
Preflight - Mit dieser Komponente werden die PDF-Dateien anhand des PDF / A-1b-Standards überprüft.
PDFBox installieren
Im Folgenden finden Sie die Schritte zum Herunterladen der Apache PDFBox:
Step 1 - Öffnen Sie die Homepage von Apache PDFBox durch Klicken auf den folgenden Link - https://pdfbox.apache.org/
Step 2 - Der obige Link führt Sie zur Homepage, wie im folgenden Screenshot gezeigt -
Step 3 - Klicken Sie nun auf DownloadsLink im obigen Screenshot hervorgehoben. Wenn Sie auf klicken, werden Sie zur Downloadseite von PDFBox weitergeleitet, wie im folgenden Screenshot gezeigt.
Step 4- Auf der Downloadseite haben Sie Links für PDFBox. Klicken Sie auf den entsprechenden Link für die neueste Version. Zum Beispiel entscheiden wir uns fürPDFBox 2.0.1 Wenn Sie darauf klicken, werden Sie zu den erforderlichen JAR-Dateien weitergeleitet, wie im folgenden Screenshot gezeigt.
Step 5 - Laden Sie die JAR-Dateien pdfbox-2.0.1.jar, fontbox-2.0.1.jar, preflight-2.0.1.jar, xmpbox-2.0.1.jar und pdfbox-tools-2.0.1.jar herunter.
Eclipse-Installation
Nach dem Herunterladen der erforderlichen JAR-Dateien müssen Sie diese JAR-Dateien in Ihre Eclipse-Umgebung einbetten. Sie können dies tun, indem Sie den Erstellungspfad für diese JAR-Dateien festlegen und verwendenpom.xml.
Build-Pfad festlegen
Im Folgenden finden Sie die Schritte zum Installieren von PDFBox in Eclipse:
Step 1- Stellen Sie sicher, dass Sie Eclipse auf Ihrem System installiert haben. Wenn nicht, laden Sie Eclipse herunter und installieren Sie es auf Ihrem System.
Step 2 - Öffnen Sie Eclipse, klicken Sie auf Datei, Neu und Öffnen Sie ein neues Projekt, wie im folgenden Screenshot gezeigt.
Step 3 - Bei Auswahl des Projekts erhalten Sie New ProjectMagier. Wählen Sie in diesem Assistenten das Java-Projekt aus und klicken Sie aufNext Schaltfläche wie im folgenden Screenshot gezeigt.
Step 4 - Wenn Sie fortfahren, werden Sie an die weitergeleitet New Java Project wizard. Erstellen Sie ein neues Projekt und klicken Sie aufNext wie im folgenden Screenshot gezeigt.
Step 5- Klicken Sie nach dem Erstellen eines neuen Projekts mit der rechten Maustaste darauf. wählenBuild Path und klicken Sie auf Configure Build Path… wie im folgenden Screenshot gezeigt.
Step 6 - Klicken Sie auf Build Path Option werden Sie an die weitergeleitet Java Build Path wizard. Wähle ausAdd External JARs wie im folgenden Screenshot gezeigt.
Step 7 - Wählen Sie die JAR-Dateien aus fontbox-2.0.1.jar, pdfbox-2.0.1.jar, pdfbox-tools-2.0.1.jar, preflight-2.0.1.jar, xmpbox-2.0.1.jar wie im folgenden Screenshot gezeigt.
Step 8 - Klicken Sie auf Open Klicken Sie im obigen Screenshot auf die Schaltfläche. Diese Dateien werden Ihrer Bibliothek hinzugefügt, wie im folgenden Screenshot gezeigt.
Step 9 - Beim Klicken OKWenn Sie die erforderlichen JAR-Dateien erfolgreich zum aktuellen Projekt hinzufügen, können Sie diese hinzugefügten Bibliotheken überprüfen, indem Sie die referenzierten Bibliotheken wie im folgenden Screenshot gezeigt erweitern.
Verwenden von pom.xml
Konvertieren Sie das Projekt in ein Maven-Projekt und fügen Sie den folgenden Inhalt hinzu pom.xml.
<project xmlns="https://maven.apache.org/POM/4.0.0"
xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my_project</groupId>
<artifactId>my_project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>fontbox</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>jempbox</artifactId>
<version>1.8.11</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>xmpbox</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>preflight</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox-tools</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies>
</project>
Lassen Sie uns nun verstehen, wie Sie ein PDF-Dokument mithilfe der PDFBox-Bibliothek erstellen.
Erstellen eines leeren PDF-Dokuments
Sie können ein leeres PDF-Dokument erstellen, indem Sie das instanziieren PDDocumentKlasse. Sie können das Dokument an der gewünschten Stelle mit dem speichernSave() Methode.
Im Folgenden finden Sie die Schritte zum Erstellen eines leeren PDF-Dokuments.
Schritt 1: Erstellen eines leeren Dokuments
Das PDDocument Klasse, die zum Paket gehört org.apache.pdfbox.pdmodelist eine speicherinterne Darstellung des PDFDocument. Durch Instanziieren dieser Klasse können Sie daher ein leeres PDFDocument erstellen, wie im folgenden Codeblock gezeigt.
PDDocument document = new PDDocument();
Schritt 2: Speichern des Dokuments
Nach dem Erstellen des Dokuments müssen Sie dieses Dokument im gewünschten Pfad speichern Save() Methode der PDDocumentKlasse. Diese Methode akzeptiert einen Zeichenfolgenwert, der den Pfad darstellt, in dem Sie das Dokument speichern möchten, als Parameter. Es folgt der Prototyp der save () -Methode derPDDocument Klasse.
document.save("Path");
Schritt 3: Schließen des Dokuments
Wenn Ihre Aufgabe abgeschlossen ist, müssen Sie am Ende die schließen PDDocument Objekt mit dem close ()Methode. Es folgt der Prototyp der close () -Methode vonPDDocument Klasse.
document.close();
Beispiel
Dieses Beispiel zeigt die Erstellung eines PDF-Dokuments. Hier erstellen wir ein Java-Programm, um ein PDF-Dokument mit dem Namen zu generierenmy_doc.pdf und speichern Sie es im Pfad C:/PdfBox_Examples/. Speichern Sie diesen Code in einer Datei mit NamenDocument_Creation.java.
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
public class Document_Creation {
public static void main (String args[]) throws IOException {
//Creating PDF document object
PDDocument document = new PDDocument();
//Saving the document
document.save("C:/PdfBox_Examples/my_doc.pdf");
System.out.println("PDF created");
//Closing the document
document.close();
}
}
Kompilieren Sie die gespeicherte Java-Datei und führen Sie sie mit den folgenden Befehlen an der Eingabeaufforderung aus.
javac Document_Creation.java
java Document_Creation
Bei der Ausführung erstellt das obige Programm ein PDF-Dokument mit der folgenden Meldung.
PDF created
Wenn Sie den angegebenen Pfad überprüfen, finden Sie das erstellte PDF-Dokument wie unten gezeigt.
Da es sich um ein leeres Dokument handelt, wird beim Versuch, dieses Dokument zu öffnen, eine Fehlermeldung angezeigt, wie im folgenden Screenshot gezeigt.
Im vorherigen Kapitel haben wir gesehen, wie ein PDF-Dokument erstellt wird. Nach dem Erstellen eines PDF-Dokuments müssen Sie Seiten hinzufügen. Lassen Sie uns nun verstehen, wie Sie Seiten in ein PDF-Dokument einfügen.
Hinzufügen von Seiten zu einem PDF-Dokument
Sie können eine leere Seite erstellen, indem Sie die PDPage Klasse und fügen Sie es dem PDF-Dokument mit der addPage() Methode der PDDocument Klasse.
Im Folgenden finden Sie die Schritte zum Erstellen eines leeren Dokuments und zum Hinzufügen von Seiten.
Schritt 1: Erstellen eines leeren Dokuments
Erstellen Sie ein leeres PDF-Dokument, indem Sie das instanziieren PDDocument Klasse wie unten gezeigt.
PDDocument document = new PDDocument();
Schritt 2: Erstellen einer leeren Seite
Das PDPage Klasse repräsentiert eine Seite in der PDF Dokument Daher können Sie eine leere Seite erstellen, indem Sie diese Klasse wie im folgenden Codeblock gezeigt instanziieren.
PDPage my_page = new PDPage();
Schritt 3: Hinzufügen einer Seite zum Dokument
Sie können dem PDF-Dokument mithilfe von eine Seite hinzufügen addPage() Methode der PDDocumentKlasse. An diese Methode müssen Sie das PDPage-Objekt als Parameter übergeben.
Fügen Sie daher die im vorherigen Schritt erstellte leere Seite zum PDDocument-Objekt hinzu, wie im folgenden Codeblock gezeigt.
document.addPage(my_page);
Auf diese Weise können Sie einem PDF-Dokument beliebig viele Seiten hinzufügen.
Schritt 4: Speichern des Dokuments
Speichern Sie nach dem Hinzufügen aller Seiten das PDF-Dokument mit save() Methode der PDDocument Klasse wie im folgenden Codeblock gezeigt.
document.save("Path");
Schritt 5: Schließen des Dokuments
Schließen Sie das Dokument schließlich mit der close() Methode der PDDocument Klasse wie unten gezeigt.
document.close();
Beispiel
Dieses Beispiel zeigt, wie Sie ein PDF-Dokument erstellen und Seiten hinzufügen. Hier erstellen wir ein PDF-Dokument mit dem Namenmy_doc.pdf Fügen Sie weitere 10 leere Seiten hinzu und speichern Sie sie im Pfad C:/PdfBox_Examples/. Speichern Sie diesen Code in einer Datei mit NamenAdding_pages.java.
package document;
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
public class Adding_Pages {
public static void main(String args[]) throws IOException {
//Creating PDF document object
PDDocument document = new PDDocument();
for (int i=0; i<10; i++) {
//Creating a blank page
PDPage blankPage = new PDPage();
//Adding the blank page to the document
document.addPage( blankPage );
}
//Saving the document
document.save("C:/PdfBox_Examples/my_doc.pdf");
System.out.println("PDF created");
//Closing the document
document.close();
}
}
Kompilieren Sie die gespeicherte Java-Datei und führen Sie sie an der Eingabeaufforderung mit den folgenden Befehlen aus:
javac Adding_pages.java
java Adding_pages
Bei der Ausführung erstellt das obige Programm ein PDF-Dokument mit leeren Seiten, auf denen die folgende Meldung angezeigt wird:
PDF created
Wenn Sie den angegebenen Pfad überprüfen, finden Sie das erstellte PDF-Dokument wie im folgenden Screenshot gezeigt.
In den vorherigen Beispielen haben Sie gesehen, wie Sie ein neues Dokument erstellen und Seiten hinzufügen. In diesem Kapitel erfahren Sie, wie Sie ein PDF-Dokument laden, das bereits in Ihrem System vorhanden ist, und einige Vorgänge ausführen.
Laden eines vorhandenen PDF-Dokuments
Das load() Methode der PDDocumentKlasse wird verwendet, um ein vorhandenes PDF-Dokument zu laden. Führen Sie die folgenden Schritte aus, um ein vorhandenes PDF-Dokument zu laden.
Schritt 1: Laden eines vorhandenen PDF-Dokuments
Laden Sie ein vorhandenes PDF-Dokument mit der statischen Methode load() des PDDocumentKlasse. Diese Methode akzeptiert ein Dateiobjekt als Parameter, da dies eine statische Methode ist, die Sie unter Verwendung des Klassennamens wie unten gezeigt aufrufen können.
File file = new File("path of the document")
PDDocument.load(file);
Schritt 2: Führen Sie die erforderlichen Vorgänge aus
Führen Sie die erforderlichen Vorgänge aus, z. B. Hinzufügen von Seiten zum Hinzufügen von Text und Hinzufügen von Bildern zum geladenen Dokument.
Schritt 3: Speichern des Dokuments
Speichern Sie nach dem Hinzufügen aller Seiten das PDF-Dokument mit save() Methode der PDDocument Klasse wie im folgenden Codeblock gezeigt.
document.save("Path");
Schritt 4: Schließen des Dokuments
Schließen Sie das Dokument schließlich mit der close() Methode der PDDocument Klasse wie unten gezeigt.
document.close();
Beispiel
Angenommen, wir haben ein PDF-Dokument, das eine einzelne Seite im Pfad enthält. C:/PdfBox_Examples/ wie im folgenden Screenshot gezeigt.
Dieses Beispiel zeigt, wie ein vorhandenes PDF-Dokument geladen wird. Hier laden wir das PDF-Dokumentsample.pdf Fügen Sie oben eine Seite hinzu und speichern Sie sie im selben Pfad mit demselben Namen.
Step 1 - Speichern Sie diesen Code in einer Datei mit Namen LoadingExistingDocument.java.
import java.io.File;
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
public class LoadingExistingDocument {
public static void main(String args[]) throws IOException {
//Loading an existing document
File file = new File("C:/PdfBox_Examples/sample.pdf");
PDDocument document = PDDocument.load(file);
System.out.println("PDF loaded");
//Adding a blank page to the document
document.addPage(new PDPage());
//Saving the document
document.save("C:/PdfBox_Examples/sample.pdf");
//Closing the document
document.close();
}
}
Kompilieren Sie die gespeicherte Java-Datei und führen Sie sie mit den folgenden Befehlen an der Eingabeaufforderung aus
javac LoadingExistingDocument.java
java LoadingExistingDocument
Bei der Ausführung lädt das obige Programm das angegebene PDF-Dokument und fügt ihm eine leere Seite mit der folgenden Meldung hinzu.
PDF loaded
Wenn Sie den angegebenen Pfad überprüfen, finden Sie eine zusätzliche Seite, die dem angegebenen PDF-Dokument hinzugefügt wurde (siehe unten).
Lassen Sie uns nun lernen, wie Sie Seiten aus einem PDF-Dokument entfernen.
Seiten aus einem vorhandenen Dokument entfernen
Sie können eine Seite aus einem vorhandenen PDF-Dokument mit dem entfernen removePage() Methode der PDDocument Klasse.
Schritt 1: Laden eines vorhandenen PDF-Dokuments
Laden Sie ein vorhandenes PDF-Dokument mit der statischen Methode load() des PDDocumentKlasse. Diese Methode akzeptiert ein Dateiobjekt als Parameter, da dies eine statische Methode ist, die Sie unter Verwendung des Klassennamens wie unten gezeigt aufrufen können.
File file = new File("path of the document")
PDDocument.load(file);
Schritt 2: Auflisten der Anzahl der Seiten
Mit können Sie die Anzahl der im PDF-Dokument vorhandenen Seiten auflisten getNumberOfPages() Methode wie unten gezeigt.
int noOfPages= document.getNumberOfPages();
System.out.print(noOfPages);
Schritt 3: Entfernen der Seite
Sie können eine Seite aus dem PDF-Dokument mit dem entfernen removePage() Methode der PDDocumentKlasse. Für diese Methode müssen Sie den Index der Seite löschen, die gelöscht werden soll.
Während der Index für die Seiten in einem PDF - Dokument angeben, behalten , dass die Indizierung der Seiten beginnt von Null, dh im Sinn, wenn Sie die 1 löschen möchten st Seite dann der Indexwert Bedürfnisse 0 sein.
document.removePage(2);
Schritt 4: Speichern des Dokuments
Speichern Sie nach dem Entfernen der Seite das PDF-Dokument mit der save() Methode der PDDocument Klasse wie im folgenden Codeblock gezeigt.
document.save("Path");
Schritt 5: Schließen des Dokuments
Schließen Sie das Dokument abschließend mit close() Methode der PDDocument Klasse wie unten gezeigt.
document.close();
Beispiel
Angenommen, wir haben ein PDF-Dokument mit Namen sample.pdf und es enthält drei leere Seiten, wie unten gezeigt.
Dieses Beispiel zeigt, wie Sie Seiten aus einem vorhandenen PDF-Dokument entfernen. Hier laden wir das oben angegebene PDF-Dokument mit dem Namensample.pdfEntfernen Sie eine Seite und speichern Sie sie im Pfad C:/PdfBox_Examples/. Speichern Sie diesen Code in einer Datei mit NamenRemoving_pages.java.
import java.io.File;
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
public class RemovingPages {
public static void main(String args[]) throws IOException {
//Loading an existing document
File file = new File("C:/PdfBox_Examples/sample.pdf");
PDDocument document = PDDocument.load(file);
//Listing the number of existing pages
int noOfPages= document.getNumberOfPages();
System.out.print(noOfPages);
//Removing the pages
document.removePage(2);
System.out.println("page removed");
//Saving the document
document.save("C:/PdfBox_Examples/sample.pdf");
//Closing the document
document.close();
}
}
Kompilieren Sie die gespeicherte Java-Datei und führen Sie sie mit den folgenden Befehlen an der Eingabeaufforderung aus.
javac RemovingPages.java
java RemovingPages
Bei der Ausführung erstellt das obige Programm ein PDF-Dokument mit leeren Seiten, auf denen die folgende Meldung angezeigt wird.
3
page removed
Wenn Sie den angegebenen Pfad überprüfen, können Sie feststellen, dass die erforderliche Seite gelöscht wurde und nur zwei Seiten im Dokument verbleiben, wie unten gezeigt.
Wie andere Dateien verfügt auch ein PDF-Dokument über Dokumenteigenschaften. Diese Eigenschaften sind Schlüssel-Wert-Paare. Jede Eigenschaft enthält bestimmte Informationen zum Dokument.
Im Folgenden sind die Eigenschaften eines PDF-Dokuments aufgeführt:
S.No. | Objektbeschreibung |
---|---|
1 | File Diese Eigenschaft enthält den Namen der Datei. |
2 | Title Mit dieser Eigenschaft können Sie den Titel für das Dokument festlegen. |
3 | Author Mit dieser Eigenschaft können Sie den Namen des Autors für das Dokument festlegen. |
4 | Subject Mit dieser Eigenschaft können Sie den Betreff des PDF-Dokuments angeben. |
5 | Keywords Mit dieser Eigenschaft können Sie die Schlüsselwörter auflisten, mit denen wir das Dokument durchsuchen können. |
6 | Created Mit dieser Eigenschaft können Sie das Erstellungsdatum für das Dokument festlegen. |
7 | Modified Mit dieser Eigenschaft können Sie das Änderungsdatum für das Dokument festlegen. |
8 | Application Mit dieser Eigenschaft können Sie die Anwendung des Dokuments festlegen. |
Es folgt ein Screenshot der Dokumenteigenschaften-Tabelle eines PDF-Dokuments.
Festlegen der Dokumenteigenschaften
PDFBox bietet Ihnen eine Klasse mit dem Namen PDDocumentInformation. Diese Klasse verfügt über eine Reihe von Setter- und Getter-Methoden.
Die Setter-Methoden dieser Klasse werden verwendet, um Werte auf verschiedene Eigenschaften eines Dokuments festzulegen, und Getter-Methoden, mit denen diese Werte abgerufen werden.
Es folgen die Setter-Methoden der PDDocumentInformation Klasse.
S.No. | Methode & Beschreibung |
---|---|
1 | setAuthor(String author) Mit dieser Methode wird der Wert für die Eigenschaft des genannten PDF-Dokuments festgelegt Author. |
2 | setTitle(String title) Mit dieser Methode wird der Wert für die Eigenschaft des genannten PDF-Dokuments festgelegt Title. |
3 | setCreator(String creator) Mit dieser Methode wird der Wert für die Eigenschaft des genannten PDF-Dokuments festgelegt Creator. |
4 | setSubject(String subject) Mit dieser Methode wird der Wert für die Eigenschaft des genannten PDF-Dokuments festgelegt Subject. |
5 | setCreationDate(Calendar date) Mit dieser Methode wird der Wert für die Eigenschaft des genannten PDF-Dokuments festgelegt CreationDate. |
6 | setModificationDate(Calendar date) Mit dieser Methode wird der Wert für die Eigenschaft des genannten PDF-Dokuments festgelegt ModificationDate. |
7 | setKeywords(String keywords list) Mit dieser Methode wird der Wert für die Eigenschaft des genannten PDF-Dokuments festgelegt Keywords. |
Beispiel
PDFBox bietet eine Klasse namens PDDocumentInformationund diese Klasse bietet verschiedene Methoden. Diese Methoden können verschiedene Eigenschaften für das Dokument festlegen und abrufen.
Dieses Beispiel zeigt, wie Sie Eigenschaften wie z Author, Title, Date, and Subjectzu einem PDF-Dokument. Hier erstellen wir ein PDF-Dokument mit dem Namendoc_attributes.pdfFügen Sie verschiedene Attribute hinzu und speichern Sie sie im Pfad C:/PdfBox_Examples/. Speichern Sie diesen Code in einer Datei mit NamenAddingAttributes.java.
import java.io.IOException;
import java.util.Calendar;
import java.util.GregorianCalendar;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentInformation;
import org.apache.pdfbox.pdmodel.PDPage;
public class AddingDocumentAttributes {
public static void main(String args[]) throws IOException {
//Creating PDF document object
PDDocument document = new PDDocument();
//Creating a blank page
PDPage blankPage = new PDPage();
//Adding the blank page to the document
document.addPage( blankPage );
//Creating the PDDocumentInformation object
PDDocumentInformation pdd = document.getDocumentInformation();
//Setting the author of the document
pdd.setAuthor("Tutorialspoint");
// Setting the title of the document
pdd.setTitle("Sample document");
//Setting the creator of the document
pdd.setCreator("PDF Examples");
//Setting the subject of the document
pdd.setSubject("Example document");
//Setting the created date of the document
Calendar date = new GregorianCalendar();
date.set(2015, 11, 5);
pdd.setCreationDate(date);
//Setting the modified date of the document
date.set(2016, 6, 5);
pdd.setModificationDate(date);
//Setting keywords for the document
pdd.setKeywords("sample, first example, my pdf");
//Saving the document
document.save("C:/PdfBox_Examples/doc_attributes.pdf");
System.out.println("Properties added successfully ");
//Closing the document
document.close();
}
}
Kompilieren Sie die gespeicherte Java-Datei und führen Sie sie mit den folgenden Befehlen an der Eingabeaufforderung aus.
javac AddingAttributes.java
java AddingAttributes
Bei der Ausführung fügt das obige Programm dem Dokument alle angegebenen Attribute hinzu und zeigt die folgende Meldung an.
Properties added successfully
Wenn Sie nun den angegebenen Pfad besuchen, finden Sie das darin erstellte PDF. Klicken Sie mit der rechten Maustaste auf das Dokument und wählen Sie die Option Dokumenteigenschaften wie unten gezeigt.
Dadurch erhalten Sie das Fenster mit den Dokumenteigenschaften. Hier können Sie beobachten, ob alle Eigenschaften des Dokuments auf die angegebenen Werte festgelegt wurden.
Abrufen der Dokumenteigenschaften
Sie können die Eigenschaften eines Dokuments mit dem abrufen getter Methoden von der PDDocumentInformation Klasse.
Es folgen die Getter-Methoden der PDDocumentInformation Klasse.
S.No. | Methode & Beschreibung |
---|---|
1 | getAuthor() Diese Methode wird verwendet, um den Wert für die Eigenschaft des genannten PDF-Dokuments abzurufen Author. |
2 | getTitle() Diese Methode wird verwendet, um den Wert für die Eigenschaft des genannten PDF-Dokuments abzurufen Title. |
3 | getCreator() Diese Methode wird verwendet, um den Wert für die Eigenschaft des genannten PDF-Dokuments abzurufen Creator. |
4 | getSubject() Diese Methode wird verwendet, um den Wert für die Eigenschaft des genannten PDF-Dokuments abzurufen Subject. |
5 | getCreationDate() Diese Methode wird verwendet, um den Wert für die Eigenschaft des genannten PDF-Dokuments abzurufen CreationDate. |
6 | getModificationDate() Diese Methode wird verwendet, um den Wert für die Eigenschaft des genannten PDF-Dokuments abzurufen ModificationDate. |
7 | getKeywords() Diese Methode wird verwendet, um den Wert für die Eigenschaft des genannten PDF-Dokuments abzurufen Keywords. |
Beispiel
Dieses Beispiel zeigt, wie Sie die Eigenschaften eines vorhandenen PDF-Dokuments abrufen. Hier erstellen wir ein Java-Programm und laden das genannte PDF-Dokumentdoc_attributes.pdf, die im Pfad gespeichert ist C:/PdfBox_Examples/und seine Eigenschaften abrufen. Speichern Sie diesen Code in einer Datei mit NamenRetrivingDocumentAttributes.java.
import java.io.File;
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentInformation;
public class RetrivingDocumentAttributes {
public static void main(String args[]) throws IOException {
//Loading an existing document
File file = new File("C:/PdfBox_Examples/doc_attributes.pdf")
PDDocument document = PDDocument.load(file);
//Getting the PDDocumentInformation object
PDDocumentInformation pdd = document.getDocumentInformation();
//Retrieving the info of a PDF document
System.out.println("Author of the document is :"+ pdd.getAuthor());
System.out.println("Title of the document is :"+ pdd.getTitle());
System.out.println("Subject of the document is :"+ pdd.getSubject());
System.out.println("Creator of the document is :"+ pdd.getCreator());
System.out.println("Creation date of the document is :"+ pdd.getCreationDate());
System.out.println("Modification date of the document is :"+
pdd.getModificationDate());
System.out.println("Keywords of the document are :"+ pdd.getKeywords());
//Closing the document
document.close();
}
}
Kompilieren Sie die gespeicherte Java-Datei und führen Sie sie mit den folgenden Befehlen an der Eingabeaufforderung aus.
javac RetrivingDocumentAttributes.java
java RetrivingDocumentAttributes
Bei der Ausführung ruft das obige Programm alle Attribute des Dokuments ab und zeigt sie wie unten gezeigt an.
Author of the document is :Tutorialspoint
Title of the document is :Sample document
Subject of the document is :Example document
Creator of the document is :PDF Examples
Creation date of the document is :11/5/2015
Modification date of the document is :6/5/2016
Keywords of the document are :sample, first example, my pdf
Im vorherigen Kapitel haben wir erläutert, wie Sie einem PDF-Dokument Seiten hinzufügen. In diesem Kapitel wird erläutert, wie Sie einem vorhandenen PDF-Dokument Text hinzufügen.
Hinzufügen von Text zu einem vorhandenen PDF-Dokument
Sie können einem Dokument mithilfe der PDFBox-Bibliothek Inhalte hinzufügen. Dadurch erhalten Sie eine Klasse mit dem Namen PDPageContentStream, die die erforderlichen Methoden zum Einfügen von Text, Bildern und anderen Arten von Inhalten in eine Seite eines PDFDocument enthält.
Im Folgenden finden Sie die Schritte zum Erstellen eines leeren Dokuments und zum Hinzufügen von Inhalten zu einer Seite darin.
Schritt 1: Laden eines vorhandenen Dokuments
Sie können ein vorhandenes Dokument mit dem laden load()Methode der PDDocument-Klasse. Instanziieren Sie daher diese Klasse und laden Sie das erforderliche Dokument wie unten gezeigt.
File file = new File("Path of the document");
PDDocument doc = document.load(file);
Schritt 2: Abrufen der erforderlichen Seite
Sie können die gewünschte Seite in einem Dokument mit dem abrufen getPage()Methode. Rufen Sie das Objekt der erforderlichen Seite ab, indem Sie den Index wie unten gezeigt an diese Methode übergeben.
PDPage page = doc.getPage(1);
Schritt 3: Vorbereiten des Inhaltsstroms
Sie können verschiedene Arten von Datenelementen mit dem Objekt der Klasse einfügen PDPageContentStream. Sie müssen das Dokumentobjekt und das Seitenobjekt an den Konstruktor dieser Klasse übergeben. Instanziieren Sie diese Klasse daher, indem Sie diese beiden Objekte übergeben, die in den vorherigen Schritten wie unten gezeigt erstellt wurden.
PDPageContentStream contentStream = new PDPageContentStream(doc, page);
Schritt 4: Beginn des Textes
Beim Einfügen von Text in ein PDF-Dokument können Sie den Start- und Endpunkt des Textes mit den Methoden beginText () und endText () der PDPageContentStream-Klasse wie unten gezeigt angeben.
contentStream.beginText();
………………………..
code to add text content
………………………..
contentStream.endText();
Beginnen Sie den Text daher mit dem beginText() Methode wie unten gezeigt.
contentStream.beginText();
Schritt 5: Festlegen der Position des Textes
Verwendung der newLineAtOffset() Methode können Sie die Position im Inhaltsstrom auf der Seite festlegen.
//Setting the position for the line
contentStream.newLineAtOffset(25, 700);
Schritt 6: Einstellen der Schriftart
Sie können die Schriftart des Textes mit dem auf den gewünschten Stil einstellen setFont() Methode der PDPageContentStreamKlasse wie unten gezeigt. Für diese Methode müssen Sie den Typ und die Größe der Schriftart übergeben.
contentStream.setFont( font_type, font_size );
Schritt 7: Einfügen des Textes
Sie können den Text mit der in die Seite einfügen ShowText() Methode der PDPageContentStreamKlasse wie unten gezeigt. Diese Methode akzeptiert den erforderlichen Text in Form einer Zeichenfolge.
contentStream.showText(text);
Schritt 8: Beenden des Textes
Nach dem Einfügen des Textes müssen Sie den Text mit dem beenden endText() Methode der PDPageContentStream Klasse wie unten gezeigt.
contentStream.endText();
Schritt 9: Schließen des PDPageContentStream
Schließe PDPageContentStream Objekt mit dem close() Methode wie unten gezeigt.
contentstream.close();
Schritt 10: Speichern des Dokuments
Speichern Sie nach dem Hinzufügen des erforderlichen Inhalts das PDF-Dokument mit dem save() Methode der PDDocument Klasse wie im folgenden Codeblock gezeigt.
doc.save("Path");
Schritt 11: Schließen des Dokuments
Schließen Sie das Dokument abschließend mit close() Methode der PDDocument Klasse wie unten gezeigt.
doc.close();
Beispiel
Dieses Beispiel zeigt, wie Sie einer Seite in einem Dokument Inhalt hinzufügen. Hier erstellen wir ein Java-Programm zum Laden des genannten PDF-Dokumentsmy_doc.pdf, die im Pfad gespeichert ist C:/PdfBox_Examples/und fügen Sie Text hinzu. Speichern Sie diesen Code in einer Datei mit NamenAddingContent.java.
import java.io.File;
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
public class AddingContent {
public static void main (String args[]) throws IOException {
//Loading an existing document
File file = new File("C:/PdfBox_Examples/my_doc.pdf");
PDDocument document = PDDocument.load(file);
//Retrieving the pages of the document
PDPage page = document.getPage(1);
PDPageContentStream contentStream = new PDPageContentStream(document, page);
//Begin the Content stream
contentStream.beginText();
//Setting the font to the Content stream
contentStream.setFont(PDType1Font.TIMES_ROMAN, 12);
//Setting the position for the line
contentStream.newLineAtOffset(25, 500);
String text = "This is the sample document and we are adding content to it.";
//Adding text in the form of string
contentStream.showText(text);
//Ending the content stream
contentStream.endText();
System.out.println("Content added");
//Closing the content stream
contentStream.close();
//Saving the document
document.save(new File("C:/PdfBox_Examples/new.pdf"));
//Closing the document
document.close();
}
}
Kompilieren Sie die gespeicherte Java-Datei und führen Sie sie mit den folgenden Befehlen an der Eingabeaufforderung aus.
javac AddingContent.java
java AddingContent
Bei der Ausführung fügt das obige Programm den angegebenen Text zum Dokument hinzu und zeigt die folgende Meldung an.
Content added
Wenn Sie das PDF-Dokument überprüfen new.pdf Im angegebenen Pfad können Sie beobachten, dass der angegebene Inhalt wie unten gezeigt zum Dokument hinzugefügt wird.
In dem im vorherigen Kapitel bereitgestellten Beispiel haben wir erläutert, wie Sie einer Seite in einer PDF-Datei Text hinzufügen. Mit diesem Programm können Sie jedoch nur den Text hinzufügen, der in eine einzelne Zeile passt. Wenn Sie versuchen, mehr Inhalt hinzuzufügen, wird nicht der gesamte Text angezeigt, der den Zeilenabstand überschreitet.
Wenn Sie beispielsweise das obige Programm im vorherigen Kapitel ausführen, indem Sie die folgende Zeichenfolge übergeben, wird nur ein Teil davon angezeigt.
String text = "This is an example of adding text to a page in the pdf document. we can
add as many lines as we want like this using the showText() method of the
ContentStream class";
Ersetze das string textdes Beispiels im vorherigen Kapitel mit der oben genannten Zeichenfolge und führen Sie es aus. Bei der Ausführung erhalten Sie die folgende Ausgabe.
Wenn Sie die Ausgabe sorgfältig beobachten, können Sie feststellen, dass nur ein Teil der Zeichenfolge angezeigt wird.
Um einer PDF-Datei mehrere Zeilen hinzuzufügen, müssen Sie die führende Zeile mithilfe der festlegen setLeading() Methode und wechseln Sie mit newline() Methode nach Beendigung jeder Zeile.
Schritte
Im Folgenden finden Sie die Schritte zum Erstellen eines leeren Dokuments und zum Hinzufügen von Inhalten zu einer Seite darin.
Schritt 1: Laden eines vorhandenen Dokuments
Sie können ein vorhandenes Dokument mit dem laden load()Methode der PDDocument-Klasse. Instanziieren Sie daher diese Klasse und laden Sie das erforderliche Dokument wie unten gezeigt.
File file = new File("Path of the document");
PDDocument doc = PDDocument.load(file);
Schritt 2: Abrufen der erforderlichen Seite
Sie können die gewünschte Seite in einem Dokument mit dem abrufen getPage()Methode. Rufen Sie das Objekt der erforderlichen Seite ab, indem Sie den Index wie unten gezeigt an diese Methode übergeben.
PDPage page = doc.getPage(1);
Schritt 3: Vorbereiten des Inhaltsstroms
Sie können verschiedene Arten von Datenelementen mit dem Objekt der genannten Klasse einfügen PDPageContentStream. Sie müssen das Dokumentobjekt und das Seitenobjekt an den Konstruktor dieser Klasse übergeben. Instanziieren Sie diese Klasse daher, indem Sie diese beiden Objekte übergeben, die in den vorherigen Schritten wie unten gezeigt erstellt wurden.
PDPageContentStream contentStream = new PDPageContentStream(doc, page);
Schritt 4: Beginn des Textes
Während Sie Text in ein PDF-Dokument einfügen, können Sie den Start- und Endpunkt des Textes mithilfe von angeben beginText() und endText() Methoden der PDPageContentStream Klasse wie unten gezeigt.
contentStream.beginText();
………………………..
code to add text content
………………………..
contentStream.endText();
Beginnen Sie den Text daher mit dem beginText() Methode wie unten gezeigt.
contentStream.beginText();
Schritt 5: Festlegen der Position des Textes
Verwendung der newLineAtOffset() Methode können Sie die Position im Inhaltsstrom auf der Seite festlegen.
//Setting the position for the line
contentStream.newLineAtOffset(25, 700);
Schritt 6: Einstellen der Schriftart
Sie können die Schriftart des Textes mit dem auf den gewünschten Stil einstellen setFont() Methode der PDPageContentStream Klasse wie unten gezeigt für diese Methode müssen Sie den Typ und die Größe der Schriftart übergeben.
contentStream.setFont( font_type, font_size );
Schritt 7: Einstellen der Textführung
Sie können den führenden Text mit der Taste einstellen setLeading() Methode wie unten gezeigt.
contentStream.setLeading(14.5f);
Schritt 8: Einfügen mehrerer Zeichenfolgen mit newline ()
Sie können mit der Zeichenfolge mehrere Zeichenfolgen einfügen ShowText() Methode der PDPageContentStream Klasse, indem Sie jeden von ihnen mit der teilen newline() Methode wie unten gezeigt.
contentStream. ShowText(text1);
contentStream.newLine();
contentStream. ShowText(text2);
Schritt 9: Beenden des Textes
Nach dem Einfügen des Textes müssen Sie den Text mit dem beenden endText() Methode der PDPageContentStream Klasse wie unten gezeigt.
contentStream.endText();
Schritt 10: Schließen des PDPageContentStream
Schließe PDPageContentStream Objekt mit dem close() Methode wie unten gezeigt.
contentstream.close();
Schritt 11: Speichern des Dokuments
Speichern Sie nach dem Hinzufügen des erforderlichen Inhalts das PDF-Dokument mit dem save() Methode der PDDocument Klasse wie im folgenden Codeblock gezeigt.
doc.save("Path");
Schritt 12: Schließen des Dokuments
Schließen Sie das Dokument abschließend mit close() Methode der PDDocument Klasse wie unten gezeigt.
doc.close();
Beispiel
Dieses Beispiel zeigt, wie Sie mit PDFBox mehrere Zeilen in eine PDF-Datei einfügen. Speichern Sie dieses Programm in einer Datei mit NamenAddMultipleLines.java.
import java.io.File;
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
public class AddMultipleLines {
public static void main(String args[]) throws IOException {
//Loading an existing document
File file = new File("C:/PdfBox_Examples/my_pdf.pdf");
PDDocument doc = document.load(file);
//Creating a PDF Document
PDPage page = doc.getPage(1);
PDPageContentStream contentStream = new PDPageContentStream(doc, page);
//Begin the Content stream
contentStream.beginText();
//Setting the font to the Content stream
contentStream.setFont( PDType1Font.TIMES_ROMAN, 16 );
//Setting the leading
contentStream.setLeading(14.5f);
//Setting the position for the line
contentStream.newLineAtOffset(25, 725);
String text1 = "This is an example of adding text to a page in the pdf document.
we can add as many lines";
String text2 = "as we want like this using the ShowText() method of the
ContentStream class";
//Adding text in the form of string
contentStream. ShowText(text1);
contentStream.newLine();
contentStream. ShowText(text2);
//Ending the content stream
contentStream.endText();
System.out.println("Content added");
//Closing the content stream
contentStream.close();
//Saving the document
doc.save(new File("C:/PdfBox_Examples/new.pdf"));
//Closing the document
doc.close();
}
}
Kompilieren Sie die gespeicherte Java-Datei und führen Sie sie mit den folgenden Befehlen an der Eingabeaufforderung aus.
javac AddMultipleLines.java
java AddMultipleLines
Bei der Ausführung fügt das obige Programm den angegebenen Text zum Dokument hinzu und zeigt die folgende Meldung an.
Content added
Wenn Sie das PDF-Dokument überprüfen new.pdf Im angegebenen Pfad können Sie beobachten, dass der angegebene Inhalt dem Dokument in mehreren Zeilen hinzugefügt wird, wie unten gezeigt.
Im vorherigen Kapitel haben wir gesehen, wie Sie einem vorhandenen PDF-Dokument Text hinzufügen. In diesem Kapitel wird erläutert, wie Sie Text aus einem vorhandenen PDF-Dokument lesen.
Extrahieren von Text aus einem vorhandenen PDF-Dokument
Das Extrahieren von Text ist eine der Hauptfunktionen der PDF-Box-Bibliothek. Sie können Text mit der extrahierengetText() Methode der PDFTextStripperKlasse. Diese Klasse extrahiert den gesamten Text aus dem angegebenen PDF-Dokument.
Im Folgenden finden Sie die Schritte zum Extrahieren von Text aus einem vorhandenen PDF-Dokument.
Schritt 1: Laden eines vorhandenen PDF-Dokuments
Laden Sie ein vorhandenes PDF-Dokument mit der statischen Methode load() des PDDocumentKlasse. Diese Methode akzeptiert ein Dateiobjekt als Parameter, da dies eine statische Methode ist, die Sie unter Verwendung des Klassennamens wie unten gezeigt aufrufen können.
File file = new File("path of the document")
PDDocument document = PDDocument.load(file);
Schritt 2: Instanziieren Sie die PDFTextStripper-Klasse
Das PDFTextStripper class bietet Methoden zum Abrufen von Text aus einem PDF-Dokument. Instanziieren Sie diese Klasse daher wie unten gezeigt.
PDFTextStripper pdfStripper = new PDFTextStripper();
Schritt 3: Abrufen des Textes
Sie können den Inhalt einer Seite aus dem PDF-Dokument mit dem lesen / abrufen getText() Methode der PDFTextStripperKlasse. An diese Methode müssen Sie das Dokumentobjekt als Parameter übergeben. Diese Methode ruft den Text in einem bestimmten Dokument ab und gibt ihn in Form eines String-Objekts zurück.
String text = pdfStripper.getText(document);
Schritt 4: Schließen des Dokuments
Schließen Sie das Dokument abschließend mit close() Methode der PDDocument-Klasse wie unten gezeigt.
document.close();
Beispiel
Angenommen, wir haben ein PDF-Dokument mit Text, wie unten gezeigt.
Dieses Beispiel zeigt, wie Sie Text aus dem oben genannten PDF-Dokument lesen. Hier erstellen wir ein Java-Programm und laden ein PDF-Dokument mit dem Namennew.pdf, die im Pfad gespeichert ist C:/PdfBox_Examples/. Speichern Sie diesen Code in einer Datei mit NamenReadingText.java.
import java.io.File;
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
public class ReadingText {
public static void main(String args[]) throws IOException {
//Loading an existing document
File file = new File("C:/PdfBox_Examples/new.pdf");
PDDocument document = PDDocument.load(file);
//Instantiate PDFTextStripper class
PDFTextStripper pdfStripper = new PDFTextStripper();
//Retrieving text from PDF document
String text = pdfStripper.getText(document);
System.out.println(text);
//Closing the document
document.close();
}
}
Kompilieren Sie die gespeicherte Java-Datei und führen Sie sie mit den folgenden Befehlen an der Eingabeaufforderung aus.
javac ReadingText.java
java ReadingText
Bei der Ausführung ruft das obige Programm den Text aus dem angegebenen PDF-Dokument ab und zeigt ihn wie unten gezeigt an.
This is an example of adding text to a page in the pdf document. we can add as many lines
as we want like this using the ShowText() method of the ContentStream class.
Im vorherigen Kapitel haben wir gesehen, wie Sie Text aus einem vorhandenen PDF-Dokument extrahieren. In diesem Kapitel wird erläutert, wie Sie Bilder in ein PDF-Dokument einfügen.
Einfügen eines Bildes in ein PDF-Dokument
Sie können ein Bild mit dem in ein PDF-Dokument einfügen createFromFile() und drawImage() Methoden der Klassen PDImageXObject und PDPageContentStream beziehungsweise.
Im Folgenden finden Sie die Schritte zum Extrahieren von Text aus einem vorhandenen PDF-Dokument.
Schritt 1: Laden eines vorhandenen PDF-Dokuments
Laden Sie ein vorhandenes PDF-Dokument mit der statischen Methode load() des PDDocumentKlasse. Diese Methode akzeptiert ein Dateiobjekt als Parameter, da dies eine statische Methode ist, die Sie unter Verwendung des Klassennamens wie unten gezeigt aufrufen können.
File file = new File("path of the document")
PDDocument doc = PDDocument.load(file);
Schritt 2: Abrufen einer Seite
Wählen Sie eine Seite im PDF-Dokument aus und rufen Sie das Seitenobjekt mit der Taste ab getPage() Methode wie unten gezeigt.
PDPage page = doc.getPage(0);
Schritt 3: Erstellen des PDImageXObject-Objekts
Die Klasse PDImageXObjectin der PDFBox-Bibliothek repräsentiert ein Bild. Es bietet alle erforderlichen Methoden zum Ausführen von Vorgängen, die sich auf ein Bild beziehen, z. B. Einfügen eines Bildes, Einstellen seiner Höhe, Einstellen seiner Breite usw.
Mit der Methode können wir ein Objekt dieser Klasse erstellen createFromFile(). Bei dieser Methode müssen wir den Pfad des Bildes, das wir hinzufügen möchten, in Form einer Zeichenfolge und das Dokumentobjekt übergeben, zu dem das Bild hinzugefügt werden muss.
PDImageXObject pdImage = PDImageXObject.createFromFile("C:/logo.png", doc);
Schritt 4: Vorbereiten des Inhaltsstroms
Sie können verschiedene Arten von Datenelementen mit dem Objekt der genannten Klasse einfügen PDPageContentStream. Sie müssen das Dokumentobjekt und das Seitenobjekt an den Konstruktor dieser Klasse übergeben. Instanziieren Sie diese Klasse daher, indem Sie diese beiden Objekte übergeben, die in den vorherigen Schritten wie unten gezeigt erstellt wurden.
PDPageContentStream contentStream = new PDPageContentStream(doc, page);
Schritt 5: Zeichnen des Bildes im PDF-Dokument
Sie können ein Bild in das PDF-Dokument einfügen, indem Sie die drawImage()Methode. Zu dieser Methode müssen Sie das im obigen Schritt erstellte Bildobjekt und die erforderlichen Abmessungen des Bildes (Breite und Höhe) wie unten gezeigt hinzufügen.
contentstream.drawImage(pdImage, 70, 250);
Schritt 6: Schließen des PDPageContentStream
Schließe PDPageContentStream Objekt mit dem close() Methode wie unten gezeigt.
contentstream.close();
Schritt 7: Speichern des Dokuments
Speichern Sie nach dem Hinzufügen des erforderlichen Inhalts das PDF-Dokument mit dem save() Methode der PDDocument Klasse wie im folgenden Codeblock gezeigt.
doc.save("Path");
Schritt 8: Schließen des Dokuments
Schließen Sie das Dokument abschließend mit close() Methode der PDDocument Klasse wie unten gezeigt.
doc.close();
Beispiel
Angenommen, wir haben ein PDF-Dokument mit dem Namen sample.pdf, in dem Weg C:/PdfBox_Examples/ mit leeren Seiten wie unten gezeigt.
Dieses Beispiel zeigt, wie Sie einer leeren Seite des oben genannten PDF-Dokuments ein Bild hinzufügen. Hier laden wir das genannte PDF-Dokumentsample.pdfund fügen Sie ein Bild hinzu. Speichern Sie diesen Code in einer Datei mit NamenInsertingImage.java.
import java.io.File;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
public class InsertingImage {
public static void main(String args[]) throws Exception {
//Loading an existing document
File file = new File("C:/PdfBox_Examples/sample.pdf");
PDDocument doc = PDDocument.load(file);
//Retrieving the page
PDPage page = doc.getPage(0);
//Creating PDImageXObject object
PDImageXObject pdImage = PDImageXObject.createFromFile("C:/PdfBox_Examples/logo.png",doc);
//creating the PDPageContentStream object
PDPageContentStream contents = new PDPageContentStream(doc, page);
//Drawing the image in the PDF document
contents.drawImage(pdImage, 70, 250);
System.out.println("Image inserted");
//Closing the PDPageContentStream object
contents.close();
//Saving the document
doc.save("C:/PdfBox_Examples/sample.pdf");
//Closing the document
doc.close();
}
}
Kompilieren Sie die gespeicherte Java-Datei und führen Sie sie mit den folgenden Befehlen an der Eingabeaufforderung aus.
javac InsertingImage.java
java InsertingImage
Bei der Ausführung fügt das obige Programm ein Bild in die angegebene Seite des angegebenen PDF-Dokuments ein, auf dem die folgende Meldung angezeigt wird.
Image inserted
Wenn Sie das Dokument überprüfen sample.pdfkönnen Sie beobachten, dass ein Bild wie unten gezeigt eingefügt wird.
Im vorherigen Kapitel haben wir gesehen, wie Sie ein Bild in ein PDF-Dokument einfügen. In diesem Kapitel wird erläutert, wie Sie ein PDF-Dokument verschlüsseln.
PDF-Dokument verschlüsseln
Sie können ein PDF-Dokument mit den von bereitgestellten Methoden verschlüsseln StandardProtectionPolicy und AccessPermission classes.
Das AccessPermissionDie Klasse dient zum Schutz des PDF-Dokuments durch Zuweisen von Zugriffsberechtigungen. Mit dieser Klasse können Sie Benutzer daran hindern, die folgenden Vorgänge auszuführen.
- Drucken Sie das Dokument
- Ändern Sie den Inhalt des Dokuments
- Kopieren oder extrahieren Sie den Inhalt des Dokuments
- Anmerkungen hinzufügen oder ändern
- Füllen Sie interaktive Formularfelder aus
- Extrahieren Sie Text und Grafiken für die Zugänglichkeit für sehbehinderte Personen
- Bauen Sie das Dokument zusammen
- Drucken Sie in schlechter Qualität
Das StandardProtectionPolicy Klasse wird verwendet, um einem Dokument einen kennwortbasierten Schutz hinzuzufügen.
Im Folgenden finden Sie die Schritte zum Verschlüsseln eines vorhandenen PDF-Dokuments.
Schritt 1: Laden eines vorhandenen PDF-Dokuments
Laden Sie ein vorhandenes PDF-Dokument mit der statischen Methode load() des PDDocumentKlasse. Diese Methode akzeptiert ein Dateiobjekt als Parameter, da dies eine statische Methode ist, die Sie unter Verwendung des Klassennamens wie unten gezeigt aufrufen können.
File file = new File("path of the document")
PDDocument document = PDDocument.load(file);
Schritt 2: Erstellen eines Zugriffsberechtigungsobjekts
Instanziieren Sie die AccessPermission Klasse wie unten gezeigt.
AccessPermission accessPermission = new AccessPermission();
Schritt 3: Erstellen eines StandardProtectionPolicy-Objekts
Instanziieren Sie die StandardProtectionPolicy Klasse durch Übergabe des Besitzerkennworts, des Benutzerkennworts und des AccessPermission Objekt wie unten gezeigt.
StandardProtectionPolicy spp = new StandardProtectionPolicy("1234","1234",accessPermission);
Schritt 4: Einstellen der Länge des Verschlüsselungsschlüssels
Stellen Sie die Länge des Verschlüsselungsschlüssels mit ein setEncryptionKeyLength() Methode wie unten gezeigt.
spp.setEncryptionKeyLength(128);
Schritt 5: Festlegen der Berechtigungen
Stellen Sie die Berechtigungen mit ein setPermissions()Methode der StandardProtectionPolicy-Klasse. Diese Methode akzeptiert eineAccessPermission Objekt als Parameter.
spp.setPermissions(accessPermission);
Schritt 6: Schützen des Dokuments
Sie können Ihr Dokument mit dem schützen protect() Methode der PDDocumentKlasse wie unten gezeigt. Übergeben Sie dieStandardProtectionPolicy Objekt als Parameter für diese Methode.
document.protect(spp);
Schritt 7: Speichern des Dokuments
Speichern Sie nach dem Hinzufügen des erforderlichen Inhalts das PDF-Dokument mit dem save() Methode der PDDocument Klasse wie im folgenden Codeblock gezeigt.
document.save("Path");
Schritt 8: Schließen des Dokuments
Schließen Sie zum Schluss das Dokument mit close() Methode von PDDocument Klasse wie unten gezeigt.
document.close();
Beispiel
Angenommen, wir haben ein PDF-Dokument mit dem Namen sample.pdf, in dem Weg C:/PdfBox_Examples/ mit leeren Seiten wie unten gezeigt.
Dieses Beispiel zeigt, wie das oben genannte PDF-Dokument verschlüsselt wird. Hier laden wir das genannte PDF-Dokumentsample.pdfund verschlüsseln. Speichern Sie diesen Code in einer Datei mit NamenEncriptingPDF.java.
import java.io.File;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.encryption.AccessPermission;
import org.apache.pdfbox.pdmodel.encryption.StandardProtectionPolicy;
public class EncriptingPDF {
public static void main(String args[]) throws Exception {
//Loading an existing document
File file = new File("C:/PdfBox_Examples/sample.pdf");
PDDocument document = PDDocument.load(file);
//Creating access permission object
AccessPermission ap = new AccessPermission();
//Creating StandardProtectionPolicy object
StandardProtectionPolicy spp = new StandardProtectionPolicy("1234", "1234", ap);
//Setting the length of the encryption key
spp.setEncryptionKeyLength(128);
//Setting the access permissions
spp.setPermissions(ap);
//Protecting the document
document.protect(spp);
System.out.println("Document encrypted");
//Saving the document
document.save("C:/PdfBox_Examples/sample.pdf");
//Closing the document
document.close();
}
}
Kompilieren Sie die gespeicherte Java-Datei und führen Sie sie mit den folgenden Befehlen an der Eingabeaufforderung aus.
javac EncriptingPDF.java
java EncriptingPDF
Bei der Ausführung verschlüsselt das obige Programm das angegebene PDF-Dokument mit der folgenden Meldung.
Document encrypted
Wenn Sie versuchen, das Dokument zu öffnen sample.pdfkönnen Sie nicht, da es verschlüsselt ist. Stattdessen werden Sie aufgefordert, das Kennwort einzugeben, um das Dokument wie unten gezeigt zu öffnen.
Im vorherigen Kapitel haben wir gelernt, wie Sie Bilder in ein PDF-Dokument einfügen. In diesem Kapitel wird erläutert, wie Sie einem PDF-Dokument JavaScript hinzufügen.
Hinzufügen von JavaScript zu einem PDF-Dokument
Sie können einem PDF-Dokument mithilfe von JavaScript-Aktionen hinzufügen PDActionJavaScriptKlasse. Dies stellt eine JavaScript-Aktion dar.
Im Folgenden finden Sie die Schritte zum Hinzufügen von JavaScript-Aktionen zu einem vorhandenen PDF-Dokument.
Schritt 1: Laden eines vorhandenen PDF-Dokuments
Laden Sie ein vorhandenes PDF-Dokument mit der statischen Methode load() des PDDocumentKlasse. Diese Methode akzeptiert ein Dateiobjekt als Parameter, da dies eine statische Methode ist, die Sie unter Verwendung des Klassennamens wie unten gezeigt aufrufen können.
File file = new File("path of the document")
PDDocument document = PDDocument.load(file);
Schritt 2: Erstellen des PDActionJavaScript-Objekts
Instanziieren Sie die PDActionJavaScriptObjekt wie unten gezeigt. Übergeben Sie dem Konstruktor dieser Klasse das erforderliche JavaScript in Form eines Strings, wie unten gezeigt.
String javaScript = "app.alert( {cMsg: 'this is an example', nIcon: 3,"
+ " nType: 0,cTitle: 'PDFBox Javascript example' } );";
PDActionJavaScript PDAjavascript = new PDActionJavaScript(javaScript);
Schritt 3: Einbetten des Java-Skripts in das Dokument
Betten Sie die erforderliche Zeichenfolge wie unten gezeigt in das PDF-Dokument ein.
document.getDocumentCatalog().setOpenAction(PDAjavascript);
Schritt 4: Speichern des Dokuments
Speichern Sie nach dem Hinzufügen des erforderlichen Inhalts das PDF-Dokument mit dem save() Methode der PDDocument Klasse wie im folgenden Codeblock gezeigt.
document.save("Path");
Schritt 5: Schließen des Dokuments
Schließen Sie zum Schluss das Dokument mit close() Methode der PDDocument Klasse wie unten gezeigt.
document.close();
Beispiel
Angenommen, wir haben ein PDF-Dokument mit dem Namen sample.pdf, in dem Weg C:/PdfBox_Examples/ mit leeren Seiten wie unten gezeigt.
Dieses Beispiel zeigt, wie JavaScript in das oben genannte PDF-Dokument eingebettet wird. Hier laden wir das genannte PDF-Dokumentsample.pdfund JavaScript darin einbetten. Speichern Sie diesen Code in einer Datei mit NamenAddJavaScript.java.
import java.io.File;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.interactive.action.PDActionJavaScript;
public class AddJavaScript {
public static void main(String args[]) throws Exception {
//Loading an existing file
File file = new File("C:/PdfBox_Examples/new.pdf");
PDDocument document = PDDocument.load(file);
String javaScript = "app.alert( {cMsg: 'this is an example', nIcon: 3,"
+ " nType: 0, cTitle: 'PDFBox Javascript example’} );";
//Creating PDActionJavaScript object
PDActionJavaScript PDAjavascript = new PDActionJavaScript(javaScript);
//Embedding java script
document.getDocumentCatalog().setOpenAction(PDAjavascript);
//Saving the document
document.save( new File("C:/PdfBox_Examples/new.pdf") );
System.out.println("Data added to the given PDF");
//Closing the document
document.close();
}
}
Kompilieren Sie die gespeicherte Java-Datei und führen Sie sie mit den folgenden Befehlen an der Eingabeaufforderung aus.
javac AddJavaScript.java
java AddJavaScript
Bei der Ausführung bettet das obige Programm JavaScript in das angegebene PDF-Dokument ein und zeigt die folgende Meldung an.
Data added to the given PDF
Wenn Sie versuchen, das Dokument zu öffnen new.pdf Es wird eine Warnmeldung angezeigt, wie unten gezeigt.
Im vorherigen Kapitel haben wir gesehen, wie Sie einem PDF-Dokument JavaScript hinzufügen. Lassen Sie uns nun lernen, wie Sie ein bestimmtes PDF-Dokument in mehrere Dokumente aufteilen.
Teilen der Seiten in einem PDF-Dokument
Sie können das angegebene PDF-Dokument mithilfe der Klasse Splitter in mehrere PDF-Dokumente aufteilen. Diese Klasse wird verwendet, um das angegebene PDF-Dokument in mehrere andere Dokumente aufzuteilen.
Im Folgenden finden Sie die Schritte zum Teilen eines vorhandenen PDF-Dokuments
Schritt 1: Laden eines vorhandenen PDF-Dokuments
Laden Sie ein vorhandenes PDF-Dokument mit der statischen Methode load() des PDDocumentKlasse. Diese Methode akzeptiert ein Dateiobjekt als Parameter, da dies eine statische Methode ist, die Sie unter Verwendung des Klassennamens wie unten gezeigt aufrufen können.
File file = new File("path of the document")
PDDocument document = PDDocument.load(file);
Schritt 2: Instanziieren Sie die Splitter-Klasse
Die benannte Klasse Splitter Enthält die Methoden zum Teilen des angegebenen PDF-Dokuments. Instanziieren Sie diese Klasse daher wie unten gezeigt.
Splitter splitter = new Splitter();
Schritt 3: Teilen des PDF-Dokuments
Sie können das angegebene Dokument mit dem teilen Split() Methode der SplitterKlasse diese Klasse. Diese Methode akzeptiert ein Objekt derPDDocument Klasse als Parameter.
List<PDDocument> Pages = splitter.split(document);
Das split() Die Methode teilt jede Seite des angegebenen Dokuments als einzelnes Dokument auf und gibt alle diese in Form einer Liste zurück.
Schritt 4: Erstellen eines Iteratorobjekts
Um die Liste der Dokumente zu durchlaufen, müssen Sie ein Iteratorobjekt der im obigen Schritt erfassten Liste abrufen. Sie müssen das Iteratorobjekt der Liste mithilfe von abrufen listIterator() Methode wie unten gezeigt.
Iterator<PDDocument> iterator = Pages.listIterator();
Schritt 5: Schließen des Dokuments
Schließen Sie zum Schluss das Dokument mit close() Methode von PDDocument Klasse wie unten gezeigt.
document.close();
Beispiel
Angenommen, es gibt ein PDF-Dokument mit Namen sample.pdf in dem Weg C:\PdfBox_Examples\ und dieses Dokument enthält zwei Seiten - eine Seite mit Bild und eine andere Seite mit Text, wie unten gezeigt.
Dieses Beispiel zeigt, wie das oben genannte PDF-Dokument aufgeteilt wird. Hier teilen wir das genannte PDF-Dokument aufsample.pdf in zwei verschiedene Dokumente sample1.pdf und sample2.pdf. Speichern Sie diesen Code in einer Datei mit NamenSplitPages.java.
import org.apache.pdfbox.multipdf.Splitter;
import org.apache.pdfbox.pdmodel.PDDocument;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Iterator;
public class SplitPages {
public static void main(String[] args) throws IOException {
//Loading an existing PDF document
File file = new File("C:/PdfBox_Examples/sample.pdf");
PDDocument document = PDDocument.load(file);
//Instantiating Splitter class
Splitter splitter = new Splitter();
//splitting the pages of a PDF document
List<PDDocument> Pages = splitter.split(document);
//Creating an iterator
Iterator<PDDocument> iterator = Pages.listIterator();
//Saving each page as an individual document
int i = 1;
while(iterator.hasNext()) {
PDDocument pd = iterator.next();
pd.save("C:/PdfBox_Examples/sample"+ i++ +".pdf");
}
System.out.println("Multiple PDF’s created");
document.close();
}
}
Kompilieren Sie die gespeicherte Java-Datei und führen Sie sie mit den folgenden Befehlen an der Eingabeaufforderung aus
javac SplitPages.java
java SplitPages
Bei der Ausführung verschlüsselt das obige Programm das angegebene PDF-Dokument mit der folgenden Meldung.
Multiple PDF’s created
Wenn Sie den angegebenen Pfad überprüfen, können Sie feststellen, dass mehrere PDFs mit Namen erstellt wurden sample1 und sample2 Wie nachfolgend dargestellt.
Im vorherigen Kapitel haben wir gesehen, wie ein bestimmtes PDF-Dokument in mehrere Dokumente aufgeteilt wird. Lassen Sie uns nun lernen, wie Sie mehrere PDF-Dokumente zu einem einzigen Dokument zusammenführen.
Zusammenführen mehrerer PDF-Dokumente
You can merge multiple PDF documents into a single PDF document using the class named PDFMergerUtility class, this class provides methods to merge two or more PDF documents in to a single PDF document.
Following are the steps to merge multiple PDF documents.
Step 1: Instantiating the PDFMergerUtility class
Instantiate the merge utility class as shown below.
PDFMergerUtility PDFmerger = new PDFMergerUtility();
Step 2: Setting the destination file
Set the destination files using the setDestinationFileName() method as shown below.
PDFmerger.setDestinationFileName("C:/PdfBox_Examples/data1/merged.pdf");
Step 3: Setting the source files
Set the source files using the addSource() method as shown below.
File file = new File("path of the document")
PDFmerger.addSource(file);
Step 4: Merging the documents
Merge the documents using the mergeDocuments() method of the PDFmerger class as shown below.
PDFmerger.mergeDocuments();
Example
Suppose, we have two PDF documents — sample1.pdf and sample2.pdf, in the path C:\PdfBox_Examples\ as shown below.
This example demonstrates how to merge the above PDF documents. Here, we will merge the PDF documents named sample1.pdf and sample2.pdf in to a single PDF document merged.pdf. Save this code in a file with name MergePDFs.java.
import org.apache.pdfbox.multipdf.PDFMergerUtility;
import java.io.File;
import java.io.IOException;
public class MergePDFs {
public static void main(String[] args) throws IOException {
File file1 = new File("C:\\EXAMPLES\\Demo1.pdf");
File file2 = new File("C:\\EXAMPLES\\Demo2.pdf");
//Instantiating PDFMergerUtility class
PDFMergerUtility PDFmerger = new PDFMergerUtility();
//Setting the destination file
PDFmerger.setDestinationFileName("C:\\Examples\\merged.pdf");
//adding the source files
PDFmerger.addSource(file1);
PDFmerger.addSource(file2);
//Merging the two documents
PDFmerger.mergeDocuments();
System.out.println("Documents merged");
}
}
Compile and execute the saved Java file from the command prompt using the following commands.
javac MergePDFs.java
java MergePDFs
Upon execution, the above program encrypts the given PDF document displaying the following message.
Documents merged
If you verify the given path, you can observe that a PDF document with name merged.pdf is created and this contains the pages of both the source documents as shown below.
In the previous chapter, we have seen how to merge multiple PDF documents. In this chapter, we will understand how to extract an image from a page of a PDF document.
Generating an Image from a PDF Document
PDFBox library provides you a class named PDFRenderer which renders a PDF document into an AWT BufferedImage.
Following are the steps to generate an image from a PDF document.
Step 1: Loading an Existing PDF Document
Load an existing PDF document using the static method load() of the PDDocument class. This method accepts a file object as a parameter, since this is a static method you can invoke it using class name as shown below.
File file = new File("path of the document")
PDDocument document = PDDocument.load(file);
Step 2: Instantiating the PDFRenderer Class
The class named PDFRenderer renders a PDF document into an AWT BufferedImage. Therefore, you need to instantiate this class as shown below. The constructor of this class accepts a document object; pass the document object created in the previous step as shown below.
PDFRenderer renderer = new PDFRenderer(document);
Step 3: Rendering Image from the PDF Document
You can render the image in a particular page using the method renderImage() of the Renderer class, to this method you need to pass the index of the page where you have the image that is to be rendered.
BufferedImage image = renderer.renderImage(0);
Step 4: Writing the Image to a File
You can write the image rendered in the previous step to a file using the write() method. To this method, you need to pass three parameters −
- The rendered image object.
- String representing the type of the image (jpg or png).
- File object to which you need to save the extracted image.
ImageIO.write(image, "JPEG", new File("C:/PdfBox_Examples/myimage.jpg"));
Step 5: Closing the Document
Finally, close the document using the close() method of the PDDocument class as shown below.
document.close();
Example
Suppose, we have a PDF document — sample.pdf in the path C:\PdfBox_Examples\ and this contains an image in its first page as shown below.
This example demonstrates how to convert the above PDF document into an image file. Here, we will retrieve the image in the 1st page of the PDF document and save it as myimage.jpg. Save this code as PdfToImage.java
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
public class PdfToImage {
public static void main(String args[]) throws Exception {
//Loading an existing PDF document
File file = new File("C:/PdfBox_Examples/sample.pdf");
PDDocument document = PDDocument.load(file);
//Instantiating the PDFRenderer class
PDFRenderer renderer = new PDFRenderer(document);
//Rendering an image from the PDF document
BufferedImage image = renderer.renderImage(0);
//Writing the image to a file
ImageIO.write(image, "JPEG", new File("C:/PdfBox_Examples/myimage.jpg"));
System.out.println("Image created");
//Closing the document
document.close();
}
}
Compile and execute the saved Java file from the command prompt using the following commands.
javac PdfToImage.java
java PdfToImage
Upon execution, the above program retrieves the image in the given PDF document displaying the following message.
Image created
If you verify the given path, you can observe that the image is generated and saved as myimage.jpg as shown below.
This chapter teaches you how to create color boxes in a page of a PDF document.
Creating Boxes in a PDF Document
You can add rectangular boxes in a PDF page using the addRect() method of the PDPageContentStream class.
Following are the steps to create rectangular shapes in a page of a PDF document.
Step 1: Loading an Existing PDF Document
Load an existing PDF document using the static method load() of the PDDocument class. This method accepts a file object as a parameter, since this is a static method you can invoke it using class name as shown below.
File file = new File("path of the document")
PDDocument document = PDDocument.load(file);
Step 2: Getting the Page Object
You need to retrieve the PDPage object of the required page where you want to add rectangles using the getPage() method of the PDDocument class. To this method you need to pass the index of the page where you want to add rectangles.
PDPage page = document.getPage(0);
Step 3: Preparing the Content Stream
You can insert various kinds of data elements using the object of the class named PDPageContentStream. You need to pass the document object and the page object to the constructor of this class therefore, instantiate this class by passing these two objects created in the previous steps as shown below.
PDPageContentStream contentStream = new PDPageContentStream(document, page);
Step 4: Setting the Non-stroking Color
You can set the non-stroking color to the rectangle using the setNonStrokingColor() method of the class PDPageContentStream. To this method, you need to pass the required color as a parameter as shown below.
contentStream.setNonStrokingColor(Color.DARK_GRAY);
Step 5: Drawing the rectangle
Draw the rectangle with required dimensions using the addRect() method. To this method, you need to pass the dimensions of the rectangle that is to be added as shown below.
contentStream.addRect(200, 650, 100, 100);
Step 6: Filling the Rectangle
The fill() method of the PDPageContentStream class fills the path between the specified dimensions with the required color as shown below.
contentStream.fill();
Step 7: Closing the Document
Finally close the document using close() method of the PDDocument class as shown below.
document.close();
Example
Suppose we have a PDF document named blankpage.pdf in the path C:\PdfBox_Examples\ and this contains a single blank page as shown below.
This example demonstrates how to create/insert rectangles in a PDF document. Here, we will create a box in a Blank PDF. Save this code as AddRectangles.java.
import java.awt.Color;
import java.io.File;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
public class ShowColorBoxes {
public static void main(String args[]) throws Exception {
//Loading an existing document
File file = new File("C:/PdfBox_Examples/BlankPage.pdf");
PDDocument document = PDDocument.load(file);
//Retrieving a page of the PDF Document
PDPage page = document.getPage(0);
//Instantiating the PDPageContentStream class
PDPageContentStream contentStream = new PDPageContentStream(document, page);
//Setting the non stroking color
contentStream.setNonStrokingColor(Color.DARK_GRAY);
//Drawing a rectangle
contentStream.addRect(200, 650, 100, 100);
//Drawing a rectangle
contentStream.fill();
System.out.println("rectangle added");
//Closing the ContentStream object
contentStream.close();
//Saving the document
File file1 = new File("C:/PdfBox_Examples/colorbox.pdf");
document.save(file1);
//Closing the document
document.close();
}
}
Compile and execute the saved Java file from the command prompt using the following commands.
javac AddRectangles.java
java AddRectangles
Upon execution, the above program creates a rectangle in a PDF document displaying the following image.
Rectangle created
If you verify the given path and open the saved document — colorbox.pdf, you can observe that a box is inserted in it as shown below.