PDF-Generierung in Java: Überblick über die Bibliotheken iText, Apache PDFBox, OpenPDF

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

PDF-Generierung in Java: Überblick über beliebte Bibliotheken



Das Erstellen von PDF-Dokumenten ist eine häufige Aufgabe in der Unternehmens- und Bildungsentwicklung mit Java. Berichte, Rechnungen, Zertifikate, Lehrmaterialien – all das lässt sich bequem in PDF exportieren. In Java gibt es mehrere ausgereifte Bibliotheken, die es ermöglichen, PDFs von Grund auf neu zu erstellen oder vorhandene Dateien zu bearbeiten. In diesem Artikel betrachten wir die drei bekanntesten Werkzeuge: iText, Apache PDFBox und OpenPDF.



1. iText – leistungsstark, aber mit Lizenzbeschränkungen



iText ist die bekannteste Java-Bibliothek für die Arbeit mit PDF. Sie existiert seit dem Jahr 2000 und unterstützt praktisch alle Funktionen des Formats: Text, Tabellen, Bilder, Wasserzeichen, Anmerkungen, Signaturen und vieles mehr.



Allerdings hat iText eine wichtige Besonderheit: Ab Version 5.5.x wird die Bibliothek unter einer dualen Lizenz veröffentlicht. Für die kommerzielle Nutzung ist der Erwerb einer AGPL-Lizenz erforderlich, sofern Sie Ihre Anwendung nicht als Open Source veröffentlichen. Für Bildungsprojekte, die öffentlich zugänglich sind, ist die Version iText 5.x unter AGPL geeignet.



Beispiel für die Erstellung eines einfachen PDFs mit Text und Tabelle mit iText 5:



import com.itextpdf.text.*;import com.itextpdf.text.pdf.PdfPTable;import com.itextpdf.text.pdf.PdfWriter;import java.io.FileOutputStream;

public class ITextExample { public static void main(String[] args) throws Exception { Document document = new Document(); PdfWriter.getInstance(document, new FileOutputStream("example_itext.pdf")); document.open();

// Überschrift document.add(new Paragraph("Beispiel PDF mit iText", FontFactory.getFont(FontFactory.HELVETICA_BOLD, 18)));

// Tabelle PdfPTable table = new PdfPTable(3); table.addCell("Spalte 1"); table.addCell("Spalte 2"); table.addCell("Spalte 3"); table.addCell("Daten 1"); table.addCell("Daten 2"); table.addCell("Daten 3"); document.add(table);

document.close(); System.out.println("PDF erstellt: example_itext.pdf"); }}


2. Apache PDFBox – kostenlos und Open Source



Apache PDFBox ist eine vollständig kostenlose Bibliothek unter der Apache 2.0-Lizenz. Sie hat keine Einschränkungen für die kommerzielle Nutzung und bietet eine Low-Level-API für die Arbeit mit PDF. PDFBox ermöglicht das Erstellen von Dokumenten, das Extrahieren von Text, das Ausfüllen von Formularen, das Arbeiten mit Bildern und sogar das Erstellen komplexer Layouts.



Der Hauptvorteil von PDFBox ist die Flexibilität und das Fehlen von Lizenzgebühren. Der Nachteil ist, dass die API für einfache Aufgaben weniger benutzerfreundlich ist als iText und mehr Code für die Formatierung erfordert.



Beispiel für die Erstellung eines PDFs mit Text und Tabelle mit PDFBox 2.x:



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;import org.apache.pdfbox.pdmodel.common.PDRectangle;import java.io.IOException;

public class PDFBoxExample { public static void main(String[] args) throws IOException { try (PDDocument document = new PDDocument()) { PDPage page = new PDPage(PDRectangle.A4); document.addPage(page);

try (PDPageContentStream cs = new PDPageContentStream(document, page)) { // Überschrift cs.setFont(PDType1Font.HELVETICA_BOLD, 18); cs.beginText(); cs.newLineAtOffset(50, 750); cs.showText("Beispiel PDF mit PDFBox"); cs.endText();

// Einfache Tabelle (Simulation) cs.setFont(PDType1Font.HELVETICA, 12); cs.setLineWidth(1f); // Tabellenlinien manuell zeichnen (vereinfacht) for (int i = 0; i < 4;

Empfehlungen