itext Tutorial
Iniziare con itext
Ricerca…
Osservazioni
Se guardi alla creazione di PDF, troverai due diversi approcci:
- I progettisti grafici utilizzano applicazioni desktop come Adobe Acrobat o Adobe InDesign per creare un documento in un processo manuale o semimano.
- In un altro contesto, i documenti PDF vengono creati a livello di codice, utilizzando un'API per produrre file PDF direttamente da applicazioni software, senza l'uso di un intervento umano minimo. A volte il documento viene creato prima in un formato intermedio (ad es. XML, HTML, ...) e quindi convertito in PDF.
Questi diversi approcci richiedono diversi prodotti software.
Lo stesso vale per la manipolazione di PDF.
- È possibile aggiornare manualmente un PDF in strumenti come Adobe Acrobat,
- Esistono anche strumenti che consentono di compilare automaticamente i moduli in base alle informazioni di un database.
iText è uno strumento che si concentra sul lato automazione delle cose.
Che cos'è iText?
iText è un SDK sviluppato per consentire agli sviluppatori di eseguire quanto segue (e molto altro):
- Genera documenti e report basati su dati da un file XML o da un database
- Crea mappe e libri, sfruttando numerose funzionalità interattive disponibili in PDF
- Aggiungi segnalibri, numeri di pagina, filigrane e altre funzionalità ai documenti PDF esistenti
- Dividere o concatenare pagine da file PDF esistenti
- Compila i moduli interattivi
- Firma digitale di documenti PDF
- Offri documenti PDF generati o manipolati dinamicamente a un browser web
iText non è uno strumento per l'utente finale. È necessario creare iText nelle proprie applicazioni in modo da poter automatizzare il processo di creazione e manipolazione dei PDF.
Quando usare iText?
In genere, iText viene utilizzato in progetti con uno dei seguenti requisiti:
- Il contenuto non è disponibile in anticipo: viene calcolato in base all'input dell'utente o alle informazioni del database in tempo reale.
- I file PDF non possono essere prodotti manualmente a causa dell'enorme volume di contenuti: un gran numero di pagine o documenti.
- I documenti devono essere creati in modalità automatica, in un processo batch.
- Il contenuto deve essere personalizzato o personalizzato; ad esempio, il nome dell'utente finale deve essere stampato su un numero di pagine.
Spesso si incontrano questi requisiti nelle applicazioni Web, in cui i contenuti devono essere offerti dinamicamente a un browser. Normalmente, dovresti pubblicare queste informazioni sotto forma di HTML, ma per alcuni documenti, il PDF è preferito su HTML per una migliore qualità di stampa, per una presentazione identica su una varietà di piattaforme, per ragioni di sicurezza, per conformarsi a specifici standard di settore (come come PAdES, PDF / A o PDF / UA), o per ridurre le dimensioni del file.
Versioni
Versione | Prima uscita | Ultima uscita | Fine della vita |
---|---|---|---|
0,30 - 0,99 | 2000/02/14 | 2003-05-01 | 2005-12-31 |
1,00 - 1,4,8 | 2003/06/25 | 2006-12-19 | 2009-12-31 |
2,00 - 2,1,7 | 2003/02/15 | 2009-07-07 | 2012-12-31 |
5.0.0 - 5.5.11 | 2009-12-07 | 2017/03/20 | 2018/12/31 |
7.0.0 - ... | 2016/05/03 | ... | 2025/12/31 |
Installazione o configurazione
iText per Java
Importare i vasi iText dal repository Maven centrale è il modo migliore per installare iText 7. Questi semplici video spiegano come farlo utilizzando IDE diversi:
- Come importare iText 7 in Eclipse per creare un PDF Hello World?
- Come importare iText 7 in Netbeans per creare un PDF Hello World?
- Come importare iText 7 in IntelliJ IDEA per creare un PDF Hello World?
In queste esercitazioni definiamo solo il kernel
e i progetti di layout
come dipendenze. Maven importa automaticamente anche io
jar perché i pacchetti del kernel
dipendono dai pacchetti io
.
Questa è la lista di base delle dipendenze per l'uso standard di iText 7:
<dependencies>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>kernel</artifactId>
<version>7.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>io</artifactId>
<version>7.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>layout</artifactId>
<version>7.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>forms</artifactId>
<version>7.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>pdfa</artifactId>
<version>7.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>pdftest</artifactId>
<version>7.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.18</version>
</dependency>
</dependencies>
Ogni dipendenza corrisponde con un jar in Java e con una DLL in C #.
-
kernel
eio
: contengono funzionalità di basso livello. -
layout
: contiene funzionalità di alto livello. -
forms
: necessarie per tutti gli esempi di AcroForm. -
pdfa
: necessario per funzionalità specifiche PDF / A. -
pdftest
: necessario per gli esempi che sono anche un test.
Per un uso più specifico di iText 7, potresti aver bisogno di ulteriori giare:
-
barcodes
: utilizzare questo se si desidera creare codici a barre. -
hyph
: usa questo se vuoi che il testo sia sillabato. -
font-asian
: usa questa è la funzionalità CJK necessaria (cinese / giapponese / coreano) -
sign
: utilizzare questo se è necessario il supporto per le firme digitali.
Tutti i barattoli sopra elencati sono disponibili con la licenza AGPL. Puoi anche scaricare questi jar in un file ZIP ospitato su Github: https://github.com/itext/itext7/releases
Se vuoi usare questi barattoli, devi aggiungerli al tuo CLASSPATH, proprio come faresti con qualsiasi altro jar.
Ulteriori funzionalità di iText 7 sono disponibili tramite componenti aggiuntivi, forniti sotto forma di contenitori sotto licenza commerciale. Se si desidera utilizzare uno di questi componenti aggiuntivi o se si desidera utilizzare iText 7 con il proprio codice proprietario, è necessario ottenere una chiave di licenza commerciale per iText 7 (vedere la sezione legale del sito Web iText ).
È possibile importare tale chiave di licenza utilizzando il modulo chiave di licenza. Puoi ottenere il codice della chiave di licenza in questo modo:
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-licensekey</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
Alcune funzionalità di iText sono closed source. Ad esempio, se si desidera utilizzare PdfCalligraph , è necessario il modulo typography
. Questo modulo non funzionerà senza una chiave di licenza ufficiale.
iText per C #
È possibile scaricare un file ZIP contenente tutte le DLL disponibili sotto AGPL. Per maggiori informazioni su queste DLL, leggere la documentazione di Java.
Ciao mondo
Questo è un programma molto semplice per creare un PDF usando iText 7 / Java:
//Initialize writer
PdfWriter writer = new PdfWriter(dest);
//Initialize document
PdfDocument pdfDoc = new PdfDocument(writer);
Document doc = new Document(pdfDoc);
//Add paragraph to the document
doc.add(new Paragraph("Hello World!"));
//Close document
doc.close();
( Listing_01_01_HelloWorld.java )
Puoi passare a molti altri esempi da quella pagina.
E questo è un programma molto semplice per creare un PDF usando il precursore iText 5.5.x / Java:
// step 1
Document document = new Document();
// step 2
PdfWriter.getInstance(document, new FileOutputStream(filename));
// step 3
document.open();
// step 4
document.add(new Paragraph("Hello World!"));
// step 5
document.close();
( HelloWorld.java )
Ci sono molti altri esempi per navigare da questa pagina.
Questi due esempi sembrano abbastanza simili. I vantaggi dell'ippestata API iText 7 diventeranno evidenti, non appena si inizia a guardare più da vicino a esempi meno banali. Pertanto, è sufficiente navigare attraverso il codice sorgente di esempio dai link sopra e confrontare.