itext
Creazione Pdf: iText 5 contro iText 7
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:
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:
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 .