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.