Recherche…


Remarques

Dans la conception originale de iText, il était possible de créer un objet Document haut niveau, puis d’avoir différents objets DocListener écoute de cet objet Document . Cela a été réalisé en utilisant différents auteurs: un PdfWriter , un HTMLWriter et un RtfWriter . Lors de l'utilisation d'un PdfWriter , un PdfDocument été créé en interne. Cette classe de bas niveau a pris en charge toutes les structures liées au PDF. Plus ou moins la même chose était vraie pour les autres formats.

Au fil des ans, iText s'est spécialisé et est devenu une pure bibliothèque PDF. La création de HTML et RTF a été abandonnée, il n'était donc plus nécessaire de créer un Document avant de créer un PdfWriter , mais nous devions nous en tenir à l'architecture d'origine car nous n'étions pas prêts à casser l'API.

Au fil des années, nous avons ajouté de plus en plus de fonctionnalités PDF à iText, et le fait que PdfDocument soit une classe à usage interne est devenu problématique. Nous avons utilisé des solutions de contournement pour que nous puissions introduire de nouvelles fonctionnalités PDF appartenant à la classe PdfDocument jusqu'au moment où nous avons atteint le plafond de ce que nous considérions comme des solutions de contournement acceptables.

C'est à ce moment que nous avons décidé de réécrire iText à partir de zéro et de créer une toute nouvelle architecture pour iText. Nous avons maintenant une distinction claire entre le PdfDocument (pour les opérations de bas niveau) et le Document (pour les fonctionnalités de haut niveau). Nous n'avons plus besoin d'ouvrir le document, et si nous utilisons l'approche try-with-resources , nous n'avons même pas besoin de la fermer nous-mêmes.

Veulent en savoir plus? Obtenez l'ebook gratuit!

HelloWorld.java (iText 5)

Supposons que nous voulions créer un simple document Hello World:

entrer la description de l'image ici

Dans iText 5, cela se ferait comme ceci:

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();
}

Source: developers.itextpdf.com

HelloWorld1.java et HelloWorld2.java (iText 7)

Supposons que nous voulions créer un simple document Hello World:

entrer la description de l'image ici

Dans iText 7, nous pourrions faire cela comme ceci:

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();
}

Ou, nous pourrions même le faire comme ceci:

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!"));
    }
}

Source: developers.itextpdf.com et le tutoriel iText 7: Building Blocks .



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow