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 è 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










Pingback: Stampare in Java « DoppiaVu’s Blog
Pingback: Stampare in Java · Commenta la tecnologia, la telefonia, i software
Grande Itext! Ho sempre usato questa libreria per fare le stampe, forse ultimamente la documentazione in giro è aumentata fortunatamente.
Saluti.
Reblogged this on sipronunciaaigor.
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
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