iText: creare facilmente PDF in Java

Recentemente mi è capitato di dover produrre dei report in java, mi sono quindi posto il problema di quale formato utilizzare per facilitarne una successiva stampa.
La prima scelta è ricaduta su HTML, in quanto risulta molto semplice da generare (essendo un formato testuale) e non necessita di librerie aggiuntive, tuttavia la stampa in java di un documento HTML risulta alquanto problematica, infatti l’unico risultato a cui sono giunto è la stampa del sorgente HTML, non della pagina renderizzata.
Mi sono quindi messo a cercare una libreria che mi permettesse di generare programmaticamente un documento PDF, imbattendomi in iText

iText in action
iText in action

iText è una libreria java per la generazione e/o modifica dinamica di documenti PDF, con essa è possibile creare molto velocemente e facilmente report anche complessi contenenti tabelle ed altri tipi di formattazione.
È sufficiente creare un oggetto di tipo Document, ottenere un’istanza di PDFWriter ed iniziare ad aggiungere elementi al documento.
Gli elementi principali sono:

  • Chunk: ovvero il più piccolo elemento di testo che può essere aggiunto, per esempio una frase
  • Paragraph: ovvero una specie di ArrayList di Chunk, Phrase, Image, List,… può contenere testo formattato con stili diversi, e si può specificare un allineamento
  • List: ovvero degli elenchi puntati e/o numerati
  • Image: ovvero immagini, nei più disparati formati
  • Table: ovvero tabelle, per le quali è possibile specificare lo stile dei bordi

Eccovi ora un piccolo esempio:

Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(hello.pdf"));
document.open();
Paragraph p = new Paragraph("This is not an hello world!", FontFactory.getFont(FontFactory.HELVETICA, 18));
p.setAlignment(Element.ALIGN_CENTER);
document.add(p);
document.close();

per concludere qualche link:

Buon divertimento!

EOF

10 pensieri su “iText: creare facilmente PDF in Java”

  1. Hai provato jasperreport? Permette di creare report in Java in diversi formati (pdf, xls, html ecc…)(per creare i pdf si appoggia ad iText). Inoltre il codice sorgente del report è in XML, ha un IDE visuale (iReport). E’ ben strutturato (divide la parte di view dai dati), il sorgente è un XML, puoi sia deployare il file .jasper (compilato) o compilare il jxml (sorgente) in runtime, ovviamente il file sorgente può essere manipolato in runtime da qualsiasi libreria per XML, permette di cambiare formato semplicemente cambiando exporter e ha un editor visuale (iReport). Ah, dimenticavo, ovviamente è Open Source.
    Io l’ho usato in diversi progetti ed è molto comodo

    1. lo conosco anche se non l’ho mai usato direttamente, iText l’ho usato per produrre report molto banali (roba da 30 righe di codice), oppure per aggiungere Datamatrix o QRCode all’interno di documenti pdf

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...