itext
Pdf-Erstellung: iText 5 versus iText 7
Suche…
Bemerkungen
In dem ursprünglichen Entwurf für iText war es möglich , ein High-Level zu erstellen Document
- Objekt, und dann andere haben DocListener
Objekte zu diesem hören Document
- Objekt. Dies wurde durch die Verwendung verschiedener Autoren erreicht: ein PdfWriter
, ein HTMLWriter
und ein RtfWriter
. Wenn Sie einen PdfWriter
, wurde ein PdfDocument
intern erstellt. Diese einfache Klasse kümmerte sich um alle PDF-bezogenen Strukturen. Ähnliches galt für die anderen Formate.
Im Laufe der Jahre spezialisierte sich iText und es wurde eine reine PDF-Bibliothek. Die Erstellung von HTML und RTF wurde aufgegeben. Daher war es nicht mehr erforderlich, ein Document
vor dem Erstellen eines PdfWriter
zu erstellen. Wir mussten jedoch an der ursprünglichen Architektur PdfWriter
, da wir nicht bereit waren, die API zu brechen.
Im Laufe der Jahre haben wir iText immer mehr PDF-Funktionen hinzugefügt, und die Tatsache, dass PdfDocument
eine Klasse für den internen Gebrauch war, wurde nur problematisch. Wir haben Workarounds verwendet, um neue PDF-Funktionen PdfDocument
, die bis zur PdfDocument
an der PdfDocument
des als akzeptabel eingestuften PdfDocument
liegenden PdfDocument
Klasse gehörten.
Wir beschlossen, iText von Grund auf neu zu schreiben und eine komplett neue Architektur für iText zu erstellen. Jetzt haben wir eine klare Unterscheidung zwischen PdfDocument
(für Low-Level-Vorgänge) und Document
(für High-Level-Funktionalität). Wir müssen das Dokument nicht mehr öffnen, und wenn wir den Try-with-Resources- Ansatz verwenden, müssen wir es nicht einmal selbst schließen.
Möchten Sie mehr wissen? Holen Sie sich das kostenlose E-Book!
HelloWorld.java (iText 5)
Angenommen, wir möchten ein einfaches Hello World-Dokument erstellen:
In iText 5 würde dies folgendermaßen erfolgen:
public void createPdf(String dest)
throws DocumentException, IOException {
Document document = new Document();
PdfWriter.getInstance(
document, new FileOutputStream(dest));
document.open();
document.add(new Paragraph("Hello World!"));
document.close();
}
Quelle: developer.itextpdf.com
HelloWorld1.java und HelloWorld2.java (iText 7)
Angenommen, wir wollten ein einfaches Hello World-Dokument erstellen:
In iText 7 könnten wir das so machen:
public void createPdf(String dest) throws IOException {
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
Document document = new Document(pdf);
document.add(new Paragraph("Hello World!"));
document.close();
}
Oder wir könnten es sogar so machen:
public void createPdf(String dest) throws IOException {
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
try (Document document = new Document(pdf)) {
document.add(new Paragraph("Hello World!"));
}
}
Quelle: developer.itextpdf.com und das Tutorial zu iText 7: Bausteine .