itext
Pdf-creatie: iText 5 versus iText 7
Zoeken…
Opmerkingen
In het oorspronkelijke ontwerp voor iText was het mogelijk om een Document
object op hoog niveau te maken en vervolgens verschillende DocListener
objecten te laten luisteren naar dat Document
object. Dit werd bereikt door verschillende schrijvers te gebruiken: een PdfWriter
, een HTMLWriter
en een RtfWriter
. Bij gebruik van een PdfWriter
, een PdfDocument
intern werd gecreëerd. Deze klasse op laag niveau zorgde voor alle PDF-gerelateerde structuren. Hetzelfde gold min of meer voor de andere formaten.
In de loop der jaren specialiseerde iText zich en werd het een pure PDF-bibliotheek. Het maken van HTML en RTF werd verlaten, dus het was niet langer nodig om een Document
te maken voordat we een PdfWriter
, maar we moesten ons aan de oorspronkelijke architectuur houden omdat we niet klaar waren om de API te breken.
In de loop der jaren hebben we steeds meer PDF-functionaliteit aan iText toegevoegd, en het feit dat PdfDocument
een klasse voor intern gebruik was, werd alleen maar problematisch. We hebben PdfDocument
oplossingen gebruikt, zodat we nieuwe PDF-functies konden introduceren die tot de klasse PdfDocument
behoorden tot het moment dat we het plafond bereikten van wat we als PdfDocument
oplossingen acceptabel vonden.
Toen besloten we om iText helemaal opnieuw te schrijven en een volledig nieuwe architectuur voor iText te creëren. Nu hebben we een duidelijk onderscheid tussen het PdfDocument
(voor bewerkingen op laag niveau) en het Document
(voor functionaliteit op hoog niveau). We hoeven het document niet langer te openen en als we de try-with-resources- aanpak gebruiken, hoeven we het niet eens zelf te sluiten.
Wil meer weten? Ontvang het gratis ebook!
HelloWorld.java (iText 5)
Stel dat we een eenvoudig Hello World-document willen maken:
In iText 5 zou dit als volgt gebeuren:
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();
}
Bron: developers.itextpdf.com
HelloWorld1.java en HelloWorld2.java (iText 7)
Stel dat we een eenvoudig Hello World-document wilden maken:
In iText 7 zouden we dat zo kunnen doen:
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();
}
Of we kunnen het zelfs zo doen:
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!"));
}
}
Bron: developers.itextpdf.com en de tutorial iText 7: Building Blocks .