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

6 risposte a iText: creare facilmente PDF in Java

  1. Pingback: Stampare in Java « DoppiaVu’s Blog

  2. Pingback: Stampare in Java · Commenta la tecnologia, la telefonia, i software

  3. Grande Itext! Ho sempre usato questa libreria per fare le stampe, forse ultimamente la documentazione in giro è aumentata fortunatamente.
    Saluti. :)

  4. 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

Lascia un Commento

Fill in your details below or click an icon to log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Log Out / Modifica )

Foto Twitter

You are commenting using your Twitter account. Log Out / Modifica )

Foto di Facebook

You are commenting using your Facebook account. Log Out / Modifica )

Connecting to %s