Ricerca…


Osservazioni

Nel progetto originale di iText, era possibile creare un oggetto Document alto livello e quindi avere oggetti DocListener diversi che ascoltavano l'oggetto Document . Ciò è stato ottenuto utilizzando diversi scrittori: un PdfWriter , un HTMLWriter e un RtfWriter . Quando si utilizza PdfWriter , è stato creato un PdfDocument internamente. Questa classe di basso livello si è occupata di tutte le strutture relative al PDF. Più o meno lo stesso era vero per gli altri formati.

Nel corso degli anni, iText si è specializzato ed è diventato una pura libreria PDF. La creazione di HTML e RTF è stata abbandonata, quindi non era più necessario creare un Document prima di creare un PdfWriter , ma abbiamo dovuto attenerci all'architettura originale perché non eravamo pronti a rompere l'API.

Nel corso degli anni, abbiamo aggiunto sempre più funzionalità PDF a iText, e il fatto che PdfDocument fosse una classe per uso interno è diventato problematico. Abbiamo usato soluzioni alternative per introdurre nuove funzionalità PDF che appartenevano alla classe PdfDocument fino al punto in cui abbiamo raggiunto il limite massimo di ciò che ritenevamo accettabile come soluzione alternativa.

In quel momento abbiamo deciso di riscrivere iText da zero e di creare un'architettura completamente nuova per iText. Ora abbiamo una chiara distinzione tra PdfDocument (per operazioni di basso livello) e Document (per funzionalità di alto livello). Non è più necessario aprire il documento e, se utilizziamo l'approccio try-with-resources , non dobbiamo nemmeno chiuderlo da soli.

Voglio sapere di più? Ottieni l'ebook gratuito!

HelloWorld.java (iText 5)

Supponiamo di voler creare un semplice documento Hello World:

inserisci la descrizione dell'immagine qui

In iText 5, questo sarebbe fatto in questo modo:

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

Fonte: developers.itextpdf.com

HelloWorld1.java e HelloWorld2.java (iText 7)

Supponiamo di voler creare un semplice documento Hello World:

inserisci la descrizione dell'immagine qui

In iText 7, potremmo fare così:

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

Oppure potremmo farlo anche in questo modo:

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

Fonte: developers.itextpdf.com e il tutorial di iText 7: Building Blocks .



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow