iText: creare facilmente PDF in Java
Vai alla fonteRecentemente 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 è 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
