itextPdf-creatie: iText 5 versus iText 7


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!

Pdf-creatie: iText 5 versus iText 7 Gerelateerde voorbeelden