iText - Guida rapida

Il Portable Document Format (PDF) è un formato di file che aiuta a presentare i dati in modo indipendente dal software applicativo, dall'hardware e dai sistemi operativi. Ogni file PDF contiene la descrizione di un documento piatto a layout fisso, inclusi testo, caratteri, grafica e altre informazioni necessarie per visualizzarlo.

Sono disponibili diverse librerie per creare e manipolare documenti PDF tramite programmi, come:

  • Adobe PDF Library- Questa libreria fornisce API in linguaggi come C ++, .NET e Java. Usando questo, possiamo modificare, visualizzare, stampare ed estrarre testo da documenti PDF.

  • Formatting Objects Processor- Formattatore di stampa open source guidato da XSL Formatting Objects e un formattatore indipendente dall'output. La destinazione di output principale è PDF.

  • PDF Box- Apache PDFBox è una libreria Java open source che supporta lo sviluppo e la conversione di documenti PDF. Utilizzando questa libreria è possibile sviluppare programmi Java che creano, convertono e manipolano documenti PDF.

  • Jasper Reports - Questo è uno strumento di reporting Java che genera report in documenti PDF inclusi Microsoft Excel, RTF, ODT, valori separati da virgole e file XML.

Cos'è iText?

Simile al software sopra elencato, iText è una libreria PDF Java che consente di sviluppare programmi Java che creano, convertono e manipolano documenti PDF.

Caratteristiche di iText

Di seguito sono riportate le caratteristiche notevoli della libreria iText:

  • Interactive- iText fornisce classi (API) per generare documenti PDF interattivi. Usandoli, puoi creare mappe e libri.

  • Adding bookmarks, page numbers, etc - Usando iText, puoi aggiungere segnalibri, numeri di pagina e filigrane.

  • Split & Merge - Utilizzando iText, puoi dividere un PDF esistente in più PDF e anche aggiungere / concatenare pagine aggiuntive ad esso.

  • Fill Forms - Utilizzando iText, puoi compilare moduli interattivi in ​​un documento PDF.

  • Save as Image - Utilizzando iText, puoi salvare i PDF come file di immagine, come PNG o JPEG.

  • Canvas - La libreria iText ti fornisce una classe Canvas con la quale puoi disegnare varie forme geometriche su un documento PDF come cerchio, linea, ecc.

  • Create PDFs- Usando iText, puoi creare un nuovo file PDF dai tuoi programmi Java. Puoi includere anche immagini e caratteri.

IText Environment

Seguire i passaggi indicati di seguito per impostare l'ambiente iText su Eclipse.

Step 1 - Installa Eclipse e apri un nuovo progetto al suo interno come mostrato di seguito.

Step 2 - Crea un file iTextSample progetto come mostrato di seguito.

Step 3- Fare clic con il pulsante destro del mouse sul progetto e convertirlo in un progetto Maven come mostrato di seguito. Una volta convertito nel progetto Maven, ti darà un filepom.xmldove è necessario menzionare le dipendenze richieste. Successivamente, iljar i file di queste dipendenze verranno automaticamente scaricati nel progetto.

Step 4 - Ora, nel pom.xml del progetto, copia e incolla il seguente contenuto (dipendenze per l'applicazione iText) e aggiorna il progetto.

Using pom.xml

Converti il ​​progetto nel progetto Maven e aggiungi il seguente contenuto al suo file pom.xml.

<project xmlns="http://maven.apache.org/POM/4.0.0" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
   http://maven.apache.org/xsd/maven-4.0.0.xsd">   
   
   <modelVersion>4.0.0</modelVersion>   
   <groupId>SanthoshExample</groupId>   
   <artifactId>SanthoshExample</artifactId>   
   <version>0.0.1-SNAPSHOT</version>   
   <build>     
      <sourceDirectory>src</sourceDirectory>     
      <plugins>       
         <plugin>         
            <artifactId>maven-compiler-plugin</artifactId>         
            <version>3.5.1</version>         
            <configuration>           
               <source>1.8</source>           
               <target>1.8</target>      
            </configuration>       
         </plugin>     
      </plugins>   
   </build>     
   
   <dependencies>     
      <!-- always needed -->     
      <dependency>         
         <groupId>com.itextpdf</groupId>         
         <artifactId>kernel</artifactId>         
         <version>7.0.2</version>     
      </dependency>  
      
      <dependency>         
         <groupId>com.itextpdf</groupId>         
         <artifactId>io</artifactId>         
         <version>7.0.2</version>     
      </dependency>  
      
      <dependency>         
         <groupId>com.itextpdf</groupId>         
         <artifactId>layout</artifactId>         
         <version>7.0.2</version>
      </dependency>  
      
      <dependency>         
         <groupId>com.itextpdf</groupId>         
         <artifactId>forms</artifactId>         
         <version>7.0.2</version>    
      </dependency>  
      
      <dependency>         
         <groupId>com.itextpdf</groupId>         
         <artifactId>pdfa</artifactId>         
         <version>7.0.2</version>     
      </dependency>  
      
      <dependency>         
         <groupId>com.itextpdf</groupId>         
         <artifactId>sign</artifactId>         
         <version>7.0.2</version>     
      </dependency>  
      
      <dependency>         
         <groupId>com.itextpdf</groupId>         
         <artifactId>barcodes</artifactId>         
         <version>7.0.2</version>     
      </dependency>  
      
      <dependency>         
         <groupId>com.itextpdf</groupId>         
         <artifactId>font-asian</artifactId>         
         <version>7.0.2</version>     
      </dependency>  
      
      <dependency>         
         <groupId>com.itextpdf</groupId>         
         <artifactId>hyph</artifactId>         
         <version>7.0.2</version>    
      </dependency> 
   </dependencies>
   
</project>

Infine, se osservi le dipendenze Maven, puoi osservare che tutte le richieste jar i file sono stati scaricati.

Vediamo ora come creare un documento PDF utilizzando la libreria iText.

Creazione di un documento PDF vuoto

È possibile creare un documento PDF vuoto istanziando il file Documentclasse. Durante la creazione di un'istanza di questa classe, è necessario superare un filePdfDocument oggetto come parametro del suo costruttore.

Di seguito sono riportati i passaggi per creare un documento PDF vuoto.

Passaggio 1: creazione di un oggetto PdfWriter

Il PdfWriterclass rappresenta il Doc Writer per un PDF. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.

Istanziare la classe PdfWriter passando un valore stringa (che rappresenta il percorso in cui è necessario creare un PDF) al suo costruttore, come mostrato di seguito.

// Creating a PdfWriter 
String dest = "C:/itextExamples/sample.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Quando un oggetto di questo tipo viene passato a un PdfDocument (classe), ogni elemento aggiunto a questo documento verrà scritto nel file specificato.

Passaggio 2: creazione di un oggetto PdfDocument

Il PdfDocumentclass è la classe che rappresenta il documento PDF in iText. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura), è necessario passare un oggetto della classePdfWriter al suo costruttore.

Istanziare la classe PdfDocument passando l'oggetto PdfWriter creato sopra al suo costruttore, come mostrato di seguito.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Una volta creato un oggetto PdfDocument, è possibile aggiungere vari elementi come pagina, font, file allegati e gestore eventi utilizzando i rispettivi metodi forniti dalla sua classe.

Passaggio 3: aggiunta di una pagina vuota

Il addNewPage() metodo del PdfDocument class viene utilizzata per creare una pagina vuota nel documento PDF.

Aggiungi una pagina vuota al documento PDF creato nel passaggio precedente come mostrato di seguito.

// Adding an empty page 
pdfDoc.addNewPage();

Passaggio 4: creazione di un oggetto documento

Il Document classe del pacchetto com.itextpdf.layoutè l'elemento principale durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classe PdfDocument.

Istanziare il file Document class passando l'oggetto della classe PdfDocument creato nei passaggi precedenti come mostrato di seguito.

// Creating a Document   
Document document = new Document(pdfDoc);

Passaggio 5: chiusura del documento

Chiudere il documento utilizzando il file close() metodo del Document classe come mostrato di seguito.

// Closing the document 
document.close();

Esempio

Di seguito è riportato il programma Java che dimostra la creazione di un documento PDF. Crea un documento PDF con il nomesample.pdf, aggiunge una pagina vuota e la salva nel percorso C:/itextExamples/

Salva questo codice in un file con il nome create_PDF.java.

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.layout.Document;  

public class create_PDF {    
   public static void main(String args[]) throws Exception {              
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/sample.pdf";       
      PdfWriter writer = new PdfWriter(dest); 
   
      // Creating a PdfDocument       
      PdfDocument pdfDoc = new PdfDocument(writer);              
   
      // Adding a new page 
      pdfDoc.addNewPage();               
   
      // Creating a Document        
      Document document = new Document(pdfDoc);               
   
      // Closing the document    
      document.close();              
      System.out.println("PDF Created");    
   } 
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi:

javac create_PDF.java 
java create_PDF

Al momento dell'esecuzione, il programma di cui sopra crea un documento PDF, visualizzando il seguente messaggio.

PDF created

Se verifichi il percorso specificato, puoi trovare il documento PDF creato come mostrato di seguito.

Poiché si tratta di un documento vuoto, se provi ad aprire questo documento, verrà visualizzato un messaggio di errore, come mostrato nella schermata seguente.

In questo capitolo vedremo come creare un documento PDF con AreaBreak utilizzando la libreria iText.

Creazione di un AreaBreak

È possibile creare un documento PDF vuoto istanziando il file Documentclasse. Durante la creazione di un'istanza di questa classe, è necessario superare un filePdfDocumentoggetto come parametro, al suo costruttore. Quindi, per aggiungere un'interruzione di area al documento, è necessario creare un'istanza del fileAreaBreak classe e add questo oggetto per documentare utilizzando il add() metodo.

Di seguito sono riportati i passaggi per creare un documento PDF vuoto con AreaBreak.

Passaggio 1: creazione di un oggetto PdfWriter

Il PdfWriter class rappresenta il Doc Writer per un PDF, questa classe appartiene al pacchetto com.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.

Istanziare la classe PdfWriter passando un valore stringa che rappresenta il percorso in cui è necessario creare un PDF, al suo costruttore, come mostrato di seguito.

// Creating a PdfWriter 
String dest = "C:/itextExamples/addingAreaBreak.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Quando un oggetto di questo tipo viene passato a un PdfDocument (classe), ogni elemento aggiunto a questo documento verrà scritto nel file specificato.

Passaggio 2: creazione di un oggetto PdfDocument

Il PdfDocument class è la classe che rappresenta il documento PDF in iText, questa classe appartiene al pacchetto com.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura) è necessario passare un oggetto della classePdfWriter al suo costruttore.

Istanziare la classe PdfDocument passando l'oggetto PdfWriter creato sopra al suo costruttore, come mostrato di seguito.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Una volta creato un oggetto PdfDocument è possibile aggiungere vari elementi come pagina, font, file allegato, gestore di eventi utilizzando i rispettivi metodi forniti dalla sua classe.

Passaggio 3: creazione di un oggetto documento

Il Document classe del pacchetto com.itextpdf.layoutè l'elemento principale durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classe PdfDocument.

Istanziare il file Document class passando l'oggetto della classe PdfDocument creato nei passaggi precedenti, come mostrato di seguito.

// Creating a Document   
Document document = new Document(pdfDoc);

Passaggio 4: creazione di un oggetto Interruzione area

Il AreaBreak la classe appartiene al pacchetto com.itextpdf.layout.element. Istanziando questa classe, l'area di contesto corrente verrà terminata e ne verrà creata una nuova con la stessa dimensione (nel caso in cui utilizziamo il costruttore predefinito).

Istanziare il file AreaBreak classe come mostrato di seguito.

// Creating an Area Break    
AreaBreak aB = new AreaBreak();

Passaggio 5: aggiunta di AreaBreak

Aggiungi il areabreak oggetto creato nel passaggio precedente utilizzando il add() metodo della classe Document, come mostrato di seguito.

// Adding area break to the PDF 
document.add(aB);

Passaggio 6: chiusura del documento

Chiudere il documento utilizzando il file close() metodo del Document classe come mostrato di seguito.

// Closing the document 
document.close();

Esempio

Il seguente programma Java mostra come creare un documento PDF con AreaBreak utilizzando la libreria iText. Crea un documento PDF con il nomeaddingAreaBreak.pdf, aggiunge un areabreak ad esso e lo salva nel percorso C:/itextExamples/.

Salva questo codice in un file con il nome AddingAreaBreak.java.

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.AreaBreak;  

public class AddingAreaBreak {    
   public static void main(String args[]) throws Exception {       
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/addingAreaBreak.pdf";       
      PdfWriter writer = new PdfWriter(dest);
   
      // Creating a PdfDocument       
      PdfDocument pdf = new PdfDocument(writer);             
   
      // Creating a Document by passing PdfDocument object to its constructor       
      Document document = new Document(pdf);  
   
      // Creating an Area Break          
      AreaBreak aB = new AreaBreak();           
   
      // Adding area break to the PDF       
      document.add(aB);              
   
      // Closing the document       
      document.close();           
      System.out.println("Pdf created");       
   } 
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi:

javac AddingAreaBreak.java 
java AddingAreaBreak

Al momento dell'esecuzione, il programma di cui sopra crea un documento PDF, visualizzando il seguente messaggio.

Pdf Created

Se verifichi il percorso specificato, puoi trovare il documento PDF creato, come mostrato di seguito.

In questo capitolo vedremo come creare un documento PDF e aggiungervi un paragrafo utilizzando la libreria iText.

Creazione di un paragrafo

È possibile creare un documento PDF vuoto istanziando il file Documentclasse. Durante la creazione di un'istanza di questa classe, è necessario superare un filePdfDocumentoggetto come parametro, al suo costruttore. Quindi, per aggiungere un paragrafo al documento, è necessario creare un'istanza del fileParagraph class e aggiungi questo oggetto al documento usando il add() metodo.

Di seguito sono riportati i passaggi per creare un documento PDF con un paragrafo al suo interno.

Passaggio 1: creazione di un oggetto PdfWriter

Il PdfWriterclass rappresenta il Doc Writer per un PDF. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.

Istanziare la classe PdfWriter passando un valore stringa (che rappresenta il percorso in cui è necessario creare un PDF) al suo costruttore, come mostrato di seguito.

// Creating a PdfWriter 
String dest = "C:/itextExamples/addingParagraph.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Quando l'oggetto di questo tipo viene passato a un PdfDocument (classe), ogni elemento aggiunto a questo documento verrà scritto nel file specificato.

Passaggio 2: creazione di un documento PDF

Il PdfDocumentclass è la classe che rappresenta il documento PDF in iText. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura), è necessario passare un oggetto della classePdfWriter al suo costruttore.

Istanziare la classe PdfDocument passando l'oggetto PdfWriter creato sopra al suo costruttore, come mostrato di seguito.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Una volta creato un oggetto PdfDocument, è possibile aggiungere vari elementi come pagina, font, file allegati e gestore eventi utilizzando i rispettivi metodi forniti dalla sua classe.

Passaggio 3: creazione della classe Document

Il Document classe del pacchetto com.itextpdf.layoutè l'elemento radice. Durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classe PdfDocument.

Istanziare la classe Document passando l'oggetto della classe PdfDocument creato nei passaggi precedenti come mostrato di seguito.

// Creating a Document   
Document document = new Document(pdfDoc);

Passaggio 4: creazione di un oggetto Paragrafo

Il Paragraphclass rappresenta un blocco autonomo di informazioni testuali e grafiche. Appartiene al pacchettocom.itextpdf.layout.element.

Istanziare il file Paragraph class passando il contenuto del testo come stringa al suo costruttore, come mostrato di seguito.

String para = "Welcome to Tutorialspoint."; 
// Creating an Area Break    
Paragraph para = new Paragraph (para);

Passaggio 5: aggiunta di paragrafo

Aggiungi il Paragraph oggetto creato nel passaggio precedente utilizzando il add() metodo del Document classe, come mostrato di seguito.

// Adding area break to the PDF 
document.add(para);

Passaggio 6: chiusura del documento

Chiudere il documento utilizzando il file close() metodo del Document classe, come mostrato di seguito.

// Closing the document 
document.close();

Esempio

Il seguente programma Java mostra come creare un documento PDF e aggiungervi un paragrafo utilizzando la libreria iText. Crea un documento PDF con il nomeaddingParagraph.pdf, aggiunge un paragrafo e lo salva nel percorso C:/itextExamples/.

Salva questo codice in un file con il nome AddingParagraph.java.

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Paragraph;  

public class AddingParagraph {    
   public static void main(String args[]) throws Exception {
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/addingParagraph.pdf";       
      PdfWriter writer = new PdfWriter(dest);           
      
      // Creating a PdfDocument       
      PdfDocument pdf = new PdfDocument(writer);              
      
      // Creating a Document        
      Document document = new Document(pdf);              
      String para1 = "Tutorials Point originated from the idea that there exists 
      a class of readers who respond better to online content and prefer to learn 
      new skills at their own pace from the comforts of their drawing rooms.";  
      
      String para2 = "The journey commenced with a single tutorial on HTML in 2006 
      and elated by the response it generated, we worked our way to adding fresh 
      tutorials to our repository which now proudly flaunts a wealth of tutorials 
      and allied articles on topics ranging from programming languages to web designing 
      to academics and much more.";              
      
      // Creating Paragraphs       
      Paragraph paragraph1 = new Paragraph(para1);             
      Paragraph paragraph2 = new Paragraph(para2);              
      
      // Adding paragraphs to document       
      document.add(paragraph1);       
      document.add(paragraph2);           
      
      // Closing the document       
      document.close();             
      System.out.println("Paragraph added");    
   } 
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi:

javac AddingParagraph.java 
java AddingParagraph

Al momento dell'esecuzione, il programma di cui sopra crea un documento PDF, visualizzando il seguente messaggio.

Paragraph added

Se verifichi il percorso specificato, puoi trovare il documento PDF creato, come mostrato di seguito.

In questo capitolo vedremo come creare un documento PDF e aggiungervi un elenco utilizzando la libreria iText.

Creazione di un elenco

È possibile creare un documento PDF vuoto istanziando il file Documentclasse. Durante la creazione di un'istanza di questa classe, è necessario superare un filePdfDocumentoggetto come parametro, al suo costruttore. Quindi, per aggiungere un elenco al documento, è necessario creare un'istanza del fileList class e aggiungi questo oggetto al documento usando il add() metodo.

Di seguito sono riportati i passaggi per creare un documento PDF e aggiungervi un elenco.

Passaggio 1: creazione di un oggetto PdfWriter

Il PdfWriterclass rappresenta il DocWriter per un PDF. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.

Istanziare la classe PdfWriter passando un valore stringa (che rappresenta il percorso in cui è necessario creare un PDF) al suo costruttore, come mostrato di seguito.

// Creating a PdfWriter 
String dest = "C:/itextExamples/addingList.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Quando l'oggetto di questo tipo viene passato a un PdfDocument (classe), ogni elemento aggiunto a questo documento verrà scritto nel file specificato.

Passaggio 2: creazione di un oggetto PdfDocument

Il PdfDocument class è la classe che rappresenta il documento PDF in iText, questa classe appartiene al pacchetto com.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura), è necessario passare un oggetto della classePdfWriter al suo costruttore.

Istanziare la classe PdfDocument passando l'oggetto PdfWriter creato sopra al suo costruttore, come mostrato di seguito.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Una volta creato un oggetto PdfDocument, è possibile aggiungere vari elementi come pagina, font, file allegati e gestore eventi utilizzando i rispettivi metodi forniti dalla sua classe.

Passaggio 3: creazione dell'oggetto Documento

Il Document classe del pacchetto com.itextpdf.layoutè l'elemento principale durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classe PdfDocument.

Istanziare il file Document class passando l'oggetto della classe PdfDocument creato nei passaggi precedenti, come mostrato di seguito.

// Creating a Document   
Document document = new Document(pdfDoc);

Passaggio 4: creazione di un oggetto elenco

Il Listclass rappresenta una serie di oggetti che sono delineati verticalmente. Appartiene al pacchettocom.itextpdf.layout.element.

Istanziare il file List classe come mostrato di seguito.

// Creating a list  
List list = new List();

Passaggio 5: aggiunta di elementi all'elenco

Aggiungi contenuti al file list oggetto utilizzando il add() metodo del List class passando i valori String, come mostrato di seguito.

//  Add elements to the list 
list.add("Java"); 
list.add("JavaFX"); 
list.add("Apache Tika"); 
list.add("OpenCV");

Passaggio 6: aggiunta dell'elenco al documento

Aggiungi il list oggetto creato nel passaggio precedente utilizzando il add() metodo del Document classe, come mostrato di seguito.

// Adding list to the document 
document.add(list);

Passaggio 7: chiusura del documento

Chiudere il documento utilizzando il file close() metodo del Document classe come mostrato di seguito.

// Closing the document 
document.close();

Esempio

Il seguente programma Java dimostra come creare un documento PDF e aggiungervi un elenco utilizzando la libreria iText. Crea un documento PDF con il nomeaddingList.pdf, aggiunge un elenco e lo salva nel percorso C:/itextExamples/.

Salva questo codice in un file con nome AddingList.java.

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.List; 
import com.itextpdf.layout.element.Paragraph;  

public class AddingList {      
   public static void main(String args[]) throws Exception {               
      // Creating a PdfWriter
      String dest = "C:/itextExamples/addngList.pdf";       
      PdfWriter writer = new PdfWriter(dest);              
   
      // Creating a PdfDocument       
      PdfDocument pdf = new PdfDocument(writer);              
   
      // Creating a Document        
      Document document = new Document(pdf);              
   
      // Creating a Paragraph       
      Paragraph paragraph = new Paragraph("Tutorials Point provides the following tutorials");
      
      // Creating a list
      List list = new List();  
      
      // Add elements to the list       
      list.add("Java");       
      list.add("JavaFX");      
      list.add("Apache Tika");       
      list.add("OpenCV");       
      list.add("WebGL");       
      list.add("Coffee Script");       
      list.add("Java RMI");       
      list.add("Apache Pig");              
      
      // Adding paragraph to the document       
      document.add(paragraph);                    
     
      // Adding list to the document       
      document.add(list);
      
      // Closing the document       
      document.close();              
      System.out.println("List added");    
   } 
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi:

javac AddingList.java 
java AddingList

Al momento dell'esecuzione, il programma di cui sopra crea un documento PDF, visualizzando il seguente messaggio.

List added

Se verifichi il percorso specificato, puoi trovare il documento PDF creato, come mostrato di seguito.

In questo capitolo vedremo come creare un documento PDF e aggiungervi una tabella utilizzando la libreria iText.

Aggiunta di una tabella a un PDF

È possibile creare un documento PDF vuoto istanziando il file Documentclasse. Durante la creazione di un'istanza di questa classe, è necessario superare un filePdfDocumentoggetto come parametro del suo costruttore. Quindi, per aggiungere una tabella al documento, è necessario creare un'istanza del fileTable class e aggiungi questo oggetto al documento usando il add() metodo.

Di seguito sono riportati i passaggi per creare un documento PDF con una tabella al suo interno.

Passaggio 1: creazione di un oggetto PdfWriter

Il PdfWriterclass rappresenta il DocWriter per un PDF. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.

Istanziare il file PdfWriter class passando un valore stringa (che rappresenta il percorso in cui è necessario creare un PDF) al suo costruttore, come mostrato di seguito.

// Creating a PdfWriter 
String dest = "C:/itextExamples/addingTable.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Quando l'oggetto di questo tipo viene passato a un PdfDocument (classe), ogni elemento aggiunto a questo documento verrà scritto nel file specificato.

Passaggio 2: creazione di un oggetto PdfDocument

Il PdfDocumentclass è la classe che rappresenta il documento PDF in iText. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura), è necessario passare un oggetto della classePdfWriter al suo costruttore.

Istanziare la classe PdfDocument passando l'oggetto PdfWriter creato sopra al suo costruttore, come mostrato di seguito.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Una volta creato un oggetto PdfDocument, è possibile aggiungere vari elementi come pagina, font, file allegati e gestore eventi utilizzando i rispettivi metodi forniti dalla sua classe.

Passaggio 3: creazione dell'oggetto Documento

Il Document classe del pacchetto com.itextpdf.layoutè l'elemento principale durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classePdfDocument.

Istanziare il file Document class passando l'oggetto della classe PdfDocument creato nei passaggi precedenti, come mostrato di seguito.

// Creating a Document   
Document document = new Document(pdfDoc);

Passaggio 4: creazione di un oggetto tabella

Il Tableclass rappresenta una griglia bidimensionale riempita con celle ordinate in righe e colonne. Appartiene al pacchettocom.itextpdf.layout.element.

Istanziare il file Table classe come mostrato di seguito.

// Creating a table object 
float [] pointColumnWidths = {150F, 150F, 150F}; 
Table table = new Table(pointColumnWidths);

Passaggio 5: aggiunta di celle alla tabella

Creare un cell oggetto istanziando il Cell classe del pacchetto com.itextpdf.layout.element. Aggiungi il contenuto della cella usando iladd() metodo di questa classe.

Infine, per aggiungere questa cella alla tabella, chiama il file addCell() metodo del Table class e passare il cell oggetto come parametro di questo metodo, come mostrato di seguito.

// Adding cell 1 to the table 
Cell cell1 = new Cell();   // Creating a cell 
cell1.add("Name");         // Adding content to the cell 
table.addCell(cell1);      // Adding cell to the table       

// Adding cell 2 to the table Cell 
cell2 = new Cell();       // Creating a cell 
cell2.add("Raju");        // Adding content to the cell 
table.addCell(cell2);     // Adding cell to the table

Passaggio 6: aggiunta di una tabella al documento

Aggiungi il table oggetto creato nel passaggio precedente utilizzando il add() metodo del Document classe come mostrato di seguito.

// Adding list to the document 
document.add(table);

Passaggio 7: chiusura del documento

Chiudere il documento utilizzando il file close() metodo del Document classe, come mostrato di seguito.

// Closing the document 
document.close();

Esempio

Il seguente programma Java mostra come creare un documento PDF e aggiungervi una tabella utilizzando la libreria iText. Crea un documento PDF con il nomeaddingTable.pdf, aggiunge una tabella e la salva nel percorso C:/itextExamples/

Salva questo codice in un file con il nome AddingTable.java.

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Cell; 
import com.itextpdf.layout.element.Table;  

public class AddingTable {      
   public static void main(String args[]) throws Exception {           
      // Creating a PdfDocument object   
      String dest = "C:/itextExamples/addingTable.pdf";   
      PdfWriter writer = new PdfWriter(dest);       
         
      // Creating a PdfDocument object      
      PdfDocument pdf = new PdfDocument(writer);                  
      
      // Creating a Document object       
      Document doc = new Document(pdf);                       
         
      // Creating a table       
      float [] pointColumnWidths = {150F, 150F, 150F};   
      Table table = new Table(pointColumnWidths);    
      
      // Adding cells to the table       
      table.addCell(new Cell().add("Name"));       
      table.addCell(new Cell().add("Raju"));       
      table.addCell(new Cell().add("Id"));       
      table.addCell(new Cell().add("1001"));       
      table.addCell(new Cell().add("Designation"));       
      table.addCell(new Cell().add("Programmer"));                 
         
      // Adding Table to document        
      doc.add(table);                  
         
      // Closing the document       
      doc.close();
      System.out.println("Table created successfully..");   
   }     
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi:

javac AddingTable.java 
java AddingTable

Al momento dell'esecuzione, il programma di cui sopra crea un documento PDF, visualizzando il seguente messaggio.

Table created successfully..

Se verifichi il percorso specificato, puoi trovare il documento PDF creato, come mostrato di seguito.

In questo capitolo vedremo come creare un documento PDF e aggiungere una tabella e formattare il contenuto di una cella nella tabella utilizzando la libreria iText.

Formattazione delle celle in una tabella

Puoi creare un PDF vuoto Documentistanziando la classe Document. Durante la creazione di un'istanza di questa classe, è necessario superare un filePdfDocumentoggetto come parametro, al suo costruttore. Quindi, per aggiungere una tabella al documento, è necessario creare un'istanza del fileTable class e aggiungi questo oggetto al documento usando il add()metodo. È possibile formattare il contenuto di una cella in una tabella utilizzando i metodi diCell classe.

Di seguito sono riportati i passaggi per formattare il contenuto di una cella in una tabella.

Passaggio 1: creazione di un oggetto PdfWriter

Il PdfWriterclass rappresenta il DocWriter per un PDF. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.

Istanziare la classe PdfWriter passando un valore stringa (che rappresenta il percorso in cui è necessario creare un PDF) al suo costruttore, come mostrato di seguito.

// Creating a PdfWriter 
String dest = "C:/itextExamples/addingBackground.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Quando un oggetto di questo tipo viene passato a un PdfDocument (classe), ogni elemento aggiunto a questo documento verrà scritto nel file specificato.

Passaggio 2: creazione di un oggetto PdfDocument

Il PdfDocumentclass è la classe che rappresenta il PDFDocument in iText. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura), è necessario passare un oggetto della classePdfWriter al suo costruttore.

Istanziare il file PdfDocument classe passando quanto sopra creato PdfWriter oggetto al suo costruttore, come mostrato di seguito.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Una volta a PdfDocument viene creato l'oggetto, è possibile aggiungere vari elementi come pagina, font, file allegati e gestore eventi utilizzando i rispettivi metodi forniti dalla sua classe.

Passaggio 3: creazione dell'oggetto Documento

Il Document classe del pacchetto com.itextpdf.layoutè l'elemento principale durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classe PdfDocument.

Istanziare il file Document class passando l'oggetto della classe PdfDocument creato nei passaggi precedenti, come mostrato di seguito.

// Creating a Document   
Document document = new Document(pdfDoc);

Passaggio 4: creazione di un oggetto tabella

Il Tableclass rappresenta una griglia bidimensionale piena di celle, ordinate in righe e colonne. Appartiene al pacchettocom.itextpdf.layout.element.

Istanziare la classe Table come mostrato di seguito.

// Creating a table 
float [] pointColumnWidths = {200F, 200F}; 
Table table = new Table(pointColumnWidths);

Passaggio 5: creazione di celle

Creare un cell oggetto istanziando il Cell classe del pacchetto com.itextpdf.layout.element. Aggiungi il contenuto della cella usando iladd() metodo del Cell classe, come mostrato di seguito.

// Adding cell 1 to the table 
Cell cell1 = new Cell();     // Creating a cell 
cell1.add("Name");           // Adding content to the cell       

// Adding cell 2 to the table 
Cell cell2 = new Cell();     // Creating a cell 
cell2.add("Raju");           // Adding content to the cell

Passaggio 6: aggiunta di sfondo alla cella

Dopo aver creato la cella e aggiunto dei contenuti, puoi formattare la cella. Ad esempio, puoi impostare il suo sfondo, allineare il testo all'interno della cella, cambiare il colore del testo, ecc., Utilizzando diversi metodi della classe della cella comesetBackgroundColor(), setBorder(), setTextAlignment().

È possibile impostare il colore di sfondo, il bordo e l'allineamento del testo alla cella creata nel passaggio precedente, come mostrato di seguito.

c1.setBackgroundColor(Color.DARK_GRAY);    // Setting background color to cell1 
c1.setBorder(Border.NO_BORDER);            // Setting border to cell1 
c1.setTextAlignment(TextAlignment.CENTER); // Setting text alignment to cell1

Passaggio 7: aggiunta di celle alla tabella

Infine, per aggiungere questa cella alla tabella, chiama il file addCell() metodo del Table class e passare il cell oggetto come parametro di questo metodo, come mostrato di seguito.

table.addCell(c1);

Passaggio 8: aggiunta di una tabella al documento

Aggiungi il table oggetto creato nel passaggio precedente utilizzando il add() metodo del Document classe come mostrato di seguito.

// Adding list to the document 
document.add(table);

Passaggio 9: chiusura del documento

Chiudere il documento utilizzando il file close() metodo del Document classe, come mostrato di seguito.

// Closing the document 
document.close();

Esempio

Il seguente programma Java dimostra come formattare il contenuto di una cella in una tabella utilizzando la libreria iText. Crea un documento PDF con il nomeaddingBackground.pdf, aggiunge una tabella, formatta il contenuto delle sue celle e lo salva nel percorso C:/itextExamples/

Salva questo codice in un file con il nome BackgroundToTable.java.

import com.itextpdf.kernel.color.Color; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document;
import com.itextpdf.layout.border.Border; 
import com.itextpdf.layout.element.Cell; 
import com.itextpdf.layout.element.Table; 
import com.itextpdf.layout.property.TextAlignment;  

public class BackgroundToTable {      
   public static void main(String args[]) throws Exception {        
      // Creating a PdfWriter object   
      String dest = "C:/itextExamples/addingBackground.pdf";   
      PdfWriter writer = new PdfWriter(dest);                  
      
      // Creating a PdfDocument object       
      PdfDocument pdfDoc = new PdfDocument(writer);                   
      
      // Creating a Document object      
      Document doc = new Document(pdfDoc); 
      
      // Creating a table       
      float [] pointColumnWidths = {200F, 200F};       
      Table table = new Table(pointColumnWidths);
      
      // Populating row 1 and adding it to the table               
      Cell c1 = new Cell();                        // Creating cell 1 
      c1.add("Name");                              // Adding name to cell 1   
      c1.setBackgroundColor(Color.DARK_GRAY);      // Setting background color
      c1.setBorder(Border.NO_BORDER);              // Setting border
      c1.setTextAlignment(TextAlignment.CENTER);   // Setting text alignment      
      table.addCell(c1);                           // Adding cell 1 to the table 
      
      Cell c2 = new 
      Cell();                               
      c2.add("Raju");       
      c2.setBackgroundColor(Color.GRAY);       
      c2.setBorder(Border.NO_BORDER);       
      c2.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c2);      
      
      // Populating row 2 and adding it to the table               
      Cell c3 = new Cell();       
      c3.add("Id");       
      c3.setBackgroundColor(Color.WHITE);       
      c3.setBorder(Border.NO_BORDER);       
      c3.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c3);                          
      
      Cell c4 = new Cell();       
      c4.add("001");       
      c4.setBackgroundColor(Color.WHITE);       
      c4.setBorder(Border.NO_BORDER);       
      c4.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c4);                          
      
      // Populating row 3 and adding it to the table        
      Cell c5 = new Cell();       
      c5.add("Designation");       
      c5.setBackgroundColor(Color.DARK_GRAY);       
      c5.setBorder(Border.NO_BORDER);       
      c5.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c5);                 
      
      Cell c6 = new Cell(); 
      c6.add("Programmer");       
      c6.setBackgroundColor(Color.GRAY);       
      c6.setBorder(Border.NO_BORDER);       
      c6.setTextAlignment(TextAlignment.CENTER);       
      table.addCell(c6);                              
      
      // Adding Table to document        
      doc.add(table);                  
      
      // Closing the document       
      doc.close();  
      
      System.out.println("Background added successfully..");     
   } 
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi:

javac BackgroundToTable.java 
java BackgroundToTable

Al momento dell'esecuzione, il programma di cui sopra crea un documento PDF, visualizzando il seguente messaggio.

Background added successfully..

Se verifichi il percorso specificato, puoi trovare il documento PDF creato, come mostrato di seguito.

In questo capitolo vedremo come formattare i bordi di una cella in una tabella utilizzando la libreria iText.

Formattazione dei bordi di una cella

È possibile creare un documento PDF vuoto istanziando il file Documentclasse. Durante la creazione di un'istanza di questa classe, è necessario superare un filePdfDocument oggetto come parametro del suo costruttore.

Quindi, per aggiungere una tabella al documento, è necessario creare un'istanza del file Table class e aggiungi questo oggetto al documento usando il add() metodo.

Puoi aggiungere vari tipi di bordi come DashedBorder, SolidBorder, DottedBorder, DoubleBorder, RoundDotsBorder, ecc. con vari colori utilizzando il setBorder() metodo del Cell classe.

Di seguito sono riportati i passaggi per formattare i bordi di una cella in una tabella.

Passaggio 1: creazione di un oggetto PdfWriter

Il PdfWriterclass rappresenta il DocWriter per un PDF. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.

Istanziare la classe PdfWriter passando un valore stringa (che rappresenta il percorso in cui è necessario creare un PDF) al suo costruttore, come mostrato di seguito.

// Creating a PdfWriter 
String dest = "C:/itextExamples/coloredBorders.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Quando un oggetto di questo tipo viene passato a un PdfDocument (classe), ogni elemento aggiunto a questo documento verrà scritto nel file specificato.

Passaggio 2: creazione di un oggetto PdfDocument

Il PdfDocumentclass è la classe che rappresenta il PDFDocument in iText. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura), è necessario passare un oggetto della classePdfWriter al suo costruttore.

Istanziare il file PdfDocument classe passando quanto sopra creato PdfWriter oggetto al suo costruttore, come mostrato di seguito.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Una volta creato un oggetto PdfDocument, è possibile aggiungere vari elementi come pagina, font, file allegati e gestore eventi utilizzando i rispettivi metodi forniti dalla sua classe.

Passaggio 3: creazione dell'oggetto Documento

Il Document classe del pacchetto com.itextpdf.layoutè l'elemento principale durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classe PdfDocument.

Istanziare il file Document class passando l'oggetto della classe PdfDocument creato nei passaggi precedenti, come mostrato di seguito.

// Creating a Document  
Document document = new Document(pdfDoc);

Passaggio 4: creazione di un oggetto tabella

Il Tableclass rappresenta una griglia bidimensionale riempita con celle ordinate in righe e colonne. Appartiene al pacchettocom.itextpdf.layout.element.

Istanziare il file Table classe come mostrato di seguito.

// Creating a table 
float [] pointColumnWidths = {200F, 200F}; 
Table table = new Table(pointColumnWidths);

Passaggio 5: creazione di celle

Crea un oggetto cella istanziando il file Cell classe del pacchetto com.itextpdf.layout.element aggiungi il contenuto della cella usando il add() metodo del Cell classe, come mostrato di seguito.

// Adding cell 1 to the table 
Cell cell1 = new Cell(); // Creating a cell 
cell1.add("Name");       // Adding content to the cell

Passaggio 6: formattazione del bordo della cella

La libreria iText fornisce varie classi che rappresentano il bordo come DashedBorder, SolidBorder, DottedBorder, DoubleBorder, RoundDotsBorder, eccetera.

I costruttori di queste classi accettano due parametri: a color oggetto che rappresenta il colore del bordo e un integer che rappresenta la larghezza del bordo.

Scegli uno di questi tipi di bordo e crea un'istanza del rispettivo bordo passando il color oggetto e un integer che rappresenta la larghezza, come mostrato di seguito.

Border b1 = new DashedBorder(Color.RED, 3);

Ora, imposta il bordo della cella usando il setBorder() metodo del cellclasse. Questo metodo accetta un oggetto del tipoBorder come parametro.

Imposta il bordo della cella passando quanto sopra creato Border oggetto come parametro di setBorder() metodo come mostrato di seguito.

c1.setBorder(b1)

Infine, per aggiungere questa cella alla tabella, chiama il file addCell() metodo del Table class e passare il cell oggetto come parametro di questo metodo, come mostrato di seguito.

table.addCell(c1);

Passaggio 7: aggiunta di una tabella al documento

Aggiungi il table oggetto creato nel passaggio precedente utilizzando il add() metodo del Document classe, come mostrato di seguito.

// Adding list to the document 
document.add(table);

Passaggio 8: chiusura del documento

Chiudere il documento utilizzando il file close() metodo del Document classe, come mostrato di seguito.

// Closing the document 
document.close();

Esempio

Il seguente programma Java mostra come formattare il bordo di una cella in una tabella utilizzando la libreria iText. Crea un documento PDF con il nomecoloredBorders.pdf, aggiunge una tabella, formatta il contenuto delle sue celle e lo salva nel percorso C:/itextExamples/

Salva questo codice in un file con il nome FormatedBorders.java.

import com.itextpdf.kernel.color.Color; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.border.Border; 
import com.itextpdf.layout.border.DashedBorder; 
import com.itextpdf.layout.border.DottedBorder; 
import com.itextpdf.layout.border.DoubleBorder; 
import com.itextpdf.layout.border.RoundDotsBorder; 
import com.itextpdf.layout.border.SolidBorder; 

import com.itextpdf.layout.element.Cell; 
import com.itextpdf.layout.element.Table; 
import com.itextpdf.layout.property.TextAlignment;  

public class FormatedBorders {      
   public static void main(String args[]) throws Exception {
      // Creating a PdfWriter object   
      String dest = "C:/itextExamples/coloredBorders.pdf";   
      
      PdfWriter writer = new 
      PdfWriter(dest);                 

      // Creating a PdfDocument object       
      PdfDocument pdfDoc = new PdfDocument(writer);                      
   
      // Creating a Document object      
      Document doc = new Document(pdfDoc);                            
   
      // Creating a table       
      float [] pointColumnWidths = {200F, 200F};       
      Table table = new Table(pointColumnWidths); 
   
      // Adding row 1 to the table
      Cell c1 = new Cell();
      
      // Adding the contents of the cell
      c1.add("Name");
   
      // Setting the back ground color of the cell
      c1.setBackgroundColor(Color.DARK_GRAY);    
   
      // Instantiating the Border class 
      Border b1 = new DashedBorder(Color.RED, 3);
   
      // Setting the border of the cell
      c1.setBorder(b1);
      
      // Setting the text alignment       
      c1.setTextAlignment(TextAlignment.CENTER);
   
      // Adding the cell to the table       
      table.addCell(c1);                          
      Cell c2 = new Cell();       
      c2.add("Raju");       
      c1.setBorder(new SolidBorder(Color.RED, 3));       
      c2.setTextAlignment(TextAlignment.CENTER);       
      table.addCell(c2);
   
      // Adding row 2 to the table                
      Cell c3 = new Cell();      
      c3.add("Id"); 
      c3.setBorder(new DottedBorder(Color.DARK_GRAY, 3));       
      c3.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c3);                          
      
      Cell c4 = new Cell();       
      c4.add("001");       
      c4.setBorder(new DoubleBorder(Color.DARK_GRAY, 3));       
      c4.setTextAlignment(TextAlignment.CENTER);       
      table.addCell(c4);                          
      
      // Adding row 3 to the table       
      Cell c5 = new Cell();       
      c5.add("Designation");       
      c5.setBorder(new RoundDotsBorder(Color.RED, 3));       
      c5.setTextAlignment(TextAlignment.CENTER);       
      table.addCell(c5);                 
      
      Cell c6 = new Cell();       
      c6.add("Programmer");       
      c6.setBorder(new RoundDotsBorder(Color.RED, 3)); 
      c6.setTextAlignment(TextAlignment.CENTER);      
      table.addCell(c6);                              
      
      // Adding Table to document        
      doc.add(table);                  
      
      // Closing the document       
      doc.close();  
      
      System.out.println("Borders added successfully..");     
   } 
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi:

javac FormatedBorders.java 
java FormatedBorders

Al momento dell'esecuzione, il programma di cui sopra crea un documento PDF, visualizzando il seguente messaggio.

Borders added successfully

Se verifichi il percorso specificato, puoi trovare il documento PDF creato, come mostrato di seguito.

In questo capitolo vedremo come aggiungere un'immagine a una tabella in un documento PDF utilizzando la libreria iText.

Aggiunta di un'immagine a una tabella

È possibile creare un documento PDF vuoto istanziando il file Documentclasse. Durante la creazione di un'istanza di questa classe, è necessario superare un filePdfDocumentoggetto come parametro, al suo costruttore. Quindi, per aggiungere una tabella al documento, è necessario creare un'istanza del fileTable class e aggiungi questo oggetto al documento usando il add() metodo.

Per aggiungere un'immagine a questa tabella, è necessario creare un'istanza del file Cell class, crea e un oggetto dell'immagine che deve essere aggiunto, aggiungi l'immagine al file cell oggetto utilizzando il add() metodo del Cell classe.

Di seguito sono riportati i passaggi per inserire un'immagine nella cella di una tabella.

Passaggio 1: creazione di un oggetto PdfWriter

Il PdfWriter class rappresenta il Doc Writer per un PDF, questa classe appartiene al pacchetto com.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.

Istanziare la classe PdfWriter passando un valore stringa che rappresenta il percorso in cui è necessario creare un PDF, al suo costruttore, come mostrato di seguito.

// Creating a PdfWriter 
String dest = "C:/itextExamples/addingImage.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Quando un oggetto di questo tipo viene passato a un PdfDocument (classe), ogni elemento aggiunto a questo documento verrà scritto nel file specificato.

Passaggio 2: creazione di un oggetto PdfDocument

Il PdfDocumentclass è la classe che rappresenta il documento PDF in iText. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura), è necessario passare un oggetto della classePdfWriter al suo costruttore.

Istanziare il file PdfDocument class passando l'oggetto PdfWriter creato sopra al suo costruttore, come mostrato di seguito.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Una volta creato un oggetto PdfDocument, è possibile aggiungere vari elementi come pagina, font, file allegati e gestore eventi utilizzando i rispettivi metodi forniti dalla sua classe.

Passaggio 3: creazione dell'oggetto Documento

Il Document classe del pacchetto com.itextpdf.layoutè l'elemento principale durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classePdfDocument.

Istanziare il file Document class passando l'oggetto della classe PdfDocument creato nei passaggi precedenti, come mostrato di seguito.

// Creating a Document  
Document document = new Document(pdfDoc);

Passaggio 4: creazione di un oggetto tabella

Il Tableclass rappresenta una griglia bidimensionale piena di celle, ordinate in righe e colonne. Appartiene al pacchettocom.itextpdf.layout.element.

Istanziare il file Table classe come mostrato di seguito.

// Creating a table 
float [] pointColumnWidths = {200F, 200F}; 
Table table = new Table(pointColumnWidths);

Passaggio 5: creazione della cella

Creare un cell oggetto istanziando il Cell classe del pacchetto com.itextpdf.layout, come mostrato di seguito.

// Adding cell to the table
Cell cell = new Cell();  // Creating a cell

Passaggio 6: creazione di un'immagine

Per creare il file image oggetto, prima di tutto, crea un file ImageData oggetto utilizzando il create() metodo del ImageDataFactoryclasse. Come parametro di questo metodo, passare un parametro stringa che rappresenta il percorso dell'immagine, come mostrato di seguito.

// Creating an ImageData object 
String imageFile = "C:/itextExamples/javafxLogo.jpg"; 
ImageData data = ImageDataFactory.create(imageFile);

Ora, istanzia il file Image classe di com.itextpdf.layout.elementpacchetto. Durante l'istanza, passa il fileImageData oggetto creato sopra, come parametro del suo costruttore, come mostrato di seguito.

// Creating an Image object 
Image img = new Image(data);

Aggiungi il image oggetto alla cella utilizzando il add() metodo della classe cella, come mostrato di seguito.

// Adding image to the cell  
cell.add(img.setAutoScale(true));

Passaggio 7: aggiunta di celle alla tabella

Infine, per aggiungere questa cella alla tabella, chiama il file addCell() metodo del Table class and pass the cell object as a parameter to this method, as shown below.

table.addCell(cell);

Step 8: Adding table to the document

Add the table object created in the previous step using the add() method of the Document class, as shown below.

// Adding list to the document 
document.add(table);

Step 9: Closing the Document

Close the document using the close() method of the Document class, as shown below.

// Closing the document 
document.close();

Example

The following Java program demonstrates how to add an image to a cell of a table in a PDF document using the iText library. It creates a PDF document with the name addingImage.pdf, adds a table to it, inserts an image (javafxLogo.jpg) to one of its cells, and saves it in the path C:/itextExamples/.

Save this code in a file with the name AddingImageToTable.java.

import com.itextpdf.io.image.ImageData; 
import com.itextpdf.io.image.ImageDataFactory; 

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Cell; 
import com.itextpdf.layout.element.Image; 
import com.itextpdf.layout.element.Table;  

public class a3AddingImageToTable {
   public static void main(String args[]) throws Exception {
      // Creating a PdfWriter object 
      String dest = "C:/itextExamples/addingImage.pdf";
      PdfWriter writer = new PdfWriter(dest);    
      
      // Creating a PdfDocument object   
      PdfDocument pdfDoc = new PdfDocument(writer);
      
      // Creating a Document object
      Document doc = new Document(pdfDoc);
      
      // Creating a table
      float [] pointColumnWidths = {150f, 150f};
      Table table = new Table(pointColumnWidths);
      
      // Populating row 1 and adding it to the table
      Cell cell1 = new Cell();
      cell1.add("Tutorial ID");
      table.addCell(cell1);
      
      Cell cell2 = new Cell();
      cell2.add("1");
      table.addCell(cell2);
      
      // Populating row 2 and adding it to the table
      Cell cell3 = new Cell();
      cell3.add("Tutorial Title");
      table.addCell(cell3);             
      
      Cell cell4 = new Cell(); 
      cell4.add("JavaFX");  
      table.addCell(cell4);
      
      // Populating row 3 and adding it to the table
      Cell cell5 = new Cell();
      cell5.add("Tutorial Author");
      table.addCell(cell5);            
      
      Cell cell6 = new Cell();
      cell6.add("Krishna Kasyap");
      table.addCell(cell6);
      
      // Populating row 4 and adding it to the table
      Cell cell7 = new Cell();
      cell7.add("Submission date");
      table.addCell(cell7);
      
      Cell cell8 = new Cell();
      cell8.add("2016-07-06");
      table.addCell(cell8);              
      
      // Populating row 5 and adding it to the table
      Cell cell9 = new Cell();
      cell9.add("Tutorial Icon");
      table.addCell(cell9);              
      
      // Creating the cell10       
      Cell cell10 = new Cell();              
      
      // Creating an ImageData object       
      String imageFile = "C:/itextExamples/javafxLogo.jpg";       
      ImageData data = ImageDataFactory.create(imageFile);        

      // Creating the image       
      Image img = new Image(data);              

      // Adding image to the cell10       
      cell10.add(img.setAutoScale(true));        

      // Adding cell110 to the table       
      table.addCell(cell10);                         
      
      // Adding Table to document        
      doc.add(table);                  
      
      // Closing the document       
      doc.close();  
      
      System.out.println("Image added to table successfully..");     
   } 
}

Compile and execute the saved Java file from the Command prompt using the following commands −

javac AddingImageToTable.java 
java AddingImageToTable

Upon execution, the above program creates a PDF document, displaying the following message.

Image added to table successfully..

If you verify the specified path, you can find the created PDF document, as shown below.

In this chapter, we will see how to add a nested table to a table in a PDF document using the iText library.

Adding Nested Tables in a Pdf

You can create an empty PDF Document by instantiating the Document class. While instantiating this class, you need to pass a PdfDocument object as a parameter, to its constructor. Then, to add a table to the document, you need to instantiate the Table class and add this object to the document using the add() method.

To add a table to this table, you need to create another table (nested table), and pass it to the cell object using the add() method of the Cell class.

Following are the steps to insert a table into the cell of a table.

Step 1: Creating a PdfWriter object

The PdfWriter class represents the DocWriter for a PDF. This class belongs to the package com.itextpdf.kernel.pdf. The constructor of this class accepts a string, representing the path of the file where the PDF is to be created.

Instantiate the PdfWriter class by passing a string value (representing the path where you need to create a PDF) to its constructor, as shown below.

// Creating a PdfWriter 
String dest = "C:/itextExamples/addingNestedTable.pdf"; 
PdfWriter writer = new PdfWriter(dest);

When an object of this type is passed to a PdfDocument (class), every element added to this document will be written to the file specified.

Step 2: Creating a PdfDocument object

The PdfDocument class is the class that represents the PDF Document in iText. This class belongs to the package com.itextpdf.kernel.pdf. To instantiate this class (in writing mode), you need to pass an object of the class PdfWriter to its constructor.

Instantiate the PdfDocument class by passing the above created PdfWriter object to its constructor, as shown below.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Once a PdfDocument object is created, you can add various elements like page, font, file attachment, and event handler using the respective methods provided by its class.

Step 3: Creating the Document object

The Document class of the package com.itextpdf.layout is the root element while creating a self-sufficient PDF. One of the constructors of this class accepts an object of the class PdfDocument.

Instantiate the Document class by passing the object of the class PdfDocument created in the previous steps, as shown below.

// Creating a Document   
Document document = new Document(pdfDoc);

Step 4: Creating a Table object

The Table class represents a two-dimensional grid filled with cells, ordered in rows and columns. It belongs to the package com.itextpdf.layout.element.

Instantiate the Table class as shown below.

// Creating a table 
float [] pointColumnWidths = {200F, 200F}; 
Table table = new Table(pointColumnWidths);

Step 5: Creating the cell

Create a cell object by instantiating the Cell class of the package com.itextpdf.layout, as shown below.

// Adding cell to the table 
Cell contact = new Cell();    // Creating a cell

Step 6: Creating Nested table

After creating the cell, create a nested table, and populate its cells, as shown below.

// Creating nested table for contact   
float [] pointColumnWidths2 = {150f, 150f}; 
Table nestedTable = new Table(pointColumnWidths2);    

// Populating row 1 and adding it to the nested table  
Cell nested1 = new Cell(); 
nested1.add("Phone"); 
nestedTable.addCell(nested1);       

Cell nested2 = new Cell(); 
nested2.add("9848022338"); 
nestedTable.addCell(nested2);  

// Populating row 2 and adding it to the nested table  
Cell nested3 = new Cell(); 
nested3.add("email"); 
nestedTable.addCell(nested3);

Cell nested4 = new Cell(); 
nested4.add("[email protected]"); 
nestedTable.addCell(nested4);     

// Populating row 3 and adding it to the nested table  
Cell nested5 = new Cell(); 
nested5.add("Address"); 
nestedTable.addCell(nested5);  

Cell nested6 = new Cell(); 
nested6.add("Hyderabad"); 
nestedTable.addCell(nested6);

Step 7: Adding Nested table to the cell

Now, add the above created nested table to the cell of the parent (container) table using the add() method of the Cell class. And, add this cell to the parent table using the addCell() method of the Table class, as shown below.

contact.add(nestedTable); 
table.addCell(contact);

Step 8: Adding table to the document

Add the table object created in the previous step using the add() method of the Document class, as shown below.

// Adding list to the document 
document.add(table);

Step 9: Closing the Document

Close the document using the close() method of the Document class, as shown below.

// Closing the document 
document.close();

Example

The following Java program demonstrates how to add a table to a cell of a table (nested table) in a PDF document using the iText library. It creates a PDF document with the name addingNestedTable.pdf, adds a table to it, inserts another table to one of its cells, and saves it in the path C:/itextExamples/.

Save this code in a file with the name AddNestedTable.java.

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Cell; 
import com.itextpdf.layout.element.Table;  

public class a4AddNestedTablesPdf {  
   public static void main(String args[]) throws Exception {                        
      // Creating a PdfWriter object   
      String dest = "C:/itextExamples/addingNestedTable.pdf";   
      PdfWriter writer = new PdfWriter(dest);                  
   
      // Creating a PdfDocument object       
      PdfDocument pdfDoc = new PdfDocument(writer);                      
   
      // Creating a Document object       
      Document doc = new Document(pdfDoc);                            
   
      // Creating a table       
      float [] pointColumnWidths1 = {150f, 150f};       
      Table table = new Table(pointColumnWidths1);                             
      
      // Populating row 1 and adding it to the table          
      Cell cell1 = new Cell();       
      cell1.add("Name");       
      table.addCell(cell1);             
      
      Cell cell2 = new Cell();       
      cell2.add("Raju");       
      table.addCell(cell2);                          
   
      // Populating row 2 and adding it to the table        
      Cell cell3 = new Cell();       
      cell3.add("Id");       
      table.addCell(cell3);             
      
      Cell cell4 = new Cell();       
      cell4.add("1001");       
      table.addCell(cell4);                    
   
      // Populating row 3 and adding it to the table        
      Cell cell5 = new Cell();       
      cell5.add("Designation");       
      table.addCell(cell5); 
      
      Cell cell6 = new Cell();       
      cell6.add("Programmer");       
      table.addCell(cell6);              
   
      // Creating nested table for contact         
      float [] pointColumnWidths2 = {150f, 150f};       
      Table nestedTable = new Table(pointColumnWidths2);                
      
      // Populating row 1 and adding it to the nested table        
      Cell nested1 = new Cell();       
      nested1.add("Phone");       
      nestedTable.addCell(nested1);                   
      
      Cell nested2 = new Cell();       
      nested2.add("9848022338");       
      nestedTable.addCell(nested2);                   
      
      // Populating row 2 and adding it to the nested table        
      Cell nested3 = new Cell();       
      nested3.add("email");       
      nestedTable.addCell(nested3);                    
      
      Cell nested4 = new Cell();       
      nested4.add("[email protected]");       
      nestedTable.addCell(nested4);                       
      
      // Populating row 3 and adding it to the nested table        
      Cell nested5 = new Cell();       
      nested5.add("Address");       
      nestedTable.addCell(nested5);                    
      
      Cell nested6 = new Cell();       
      nested6.add("Hyderabad");       
      nestedTable.addCell(nested6);              
      
      // Adding table to the cell       
      Cell cell7 = new Cell();       
      cell7.add("Contact");       
      table.addCell(cell7);              
      
      Cell cell8 = new Cell();       
      cell8.add(nestedTable);       
      table.addCell(cell8);
      
      // Adding table to the document       
      doc.add(table);                   
      
      // Closing the document               
      doc.close();  
      System.out.println("Nested Table Added successfully..");     
   } 
}

Compile and execute the saved Java file from the Command prompt using the following commands −

javac AddNestedTable.java 
java AddNestedTable

Upon execution, the above program creates a PDF document displaying the following message.

Nested Table Added successfully..

If you verify the specified path, you can find the created PDF document, as shown below.

In this chapter, we will see how to add a list to a table in a PDF document using the iText library.

Adding Lists to a Table in a PDF

You can create an empty PDF Document by instantiating the Document class. While instantiating this class, you need to pass a PdfDocument object as a parameter to its constructor. Then, to add a table to the document, you need to instantiate the Table class and add this object to the document using the add() method.

To add a list to the table, you need to instantiate the List class of the com.itextpdf.layout.element package and insert it into the cell object using the add() method of the Cell class.

Following are the steps to add a list to the cell of a table.

Step 1: Creating a PdfWriter object

The PdfWriter class represents the Doc Writer for a PDF. This class belongs to the package com.itextpdf.kernel.pdf. The constructor of this class accepts a string, representing the path of the file where the PDF is to be created.

Instantiate the PdfWriter class by passing a string value (representing the path where you need to create a PDF) to its constructor, as shown below

// Creating a PdfWriter 
String dest = "C:/itextExamples/addingObjects.pdf"; 
PdfWriter writer = new PdfWriter(dest);

When an object of this type is passed to a PdfDocument (class), every element added to this document will be written to the file specified.

Step 2: Creating a PdfDocument object

The PdfDocument class is the class that represents the PDF Document in iText. This class belongs to the package com.itextpdf.kernel.pdf. To instantiate this class (in writing mode), you need to pass an object of the class PdfWriter to its constructor.

Instantiate the PdfDocument class by passing the above created PdfWriter object to its constructor, as shown below.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Once a PdfDocument object is created, you can add various elements like page, font, file attachment, and event handler using the respective methods provided by its class.

Step 3: Creating the Document object

The Document class of the package com.itextpdf.layout is the root element while creating a self-sufficient PDF. One of the constructors of this class accepts an object of the class PdfDocument.

Instantiate the Document class by passing the object of the class PdfDocument created in the previous steps, as shown below.

// Creating a Document  
Document document = new Document(pdfDoc);

Step 4: Creating a Table object

The Table class represents a two-dimensional grid filled with cells, ordered in rows and columns. It belongs to the package com.itextpdf.layout.element.

Instantiate the Table class as shown below.

// Creating a table 
float [] pointColumnWidths = {200F, 200F}; 
Table table = new Table(pointColumnWidths);

Step 5: Creating the cell

Create a cell object by instantiating the Cell class of the package com.itextpdf.layout, as shown below.

// Adding cell to the table 
Cell listCell = new Cell(); // Creating a cell

Step 6: Creating List object

After creating the cell, create a list object by instantiating the List class of the package com.itextpdf.layout.element. Create the list items by instantiating the ListItem class and add the created items using the add() method of the List class, as shown below.

List list = new List(); 
ListItem item1 = new ListItem("JavaFX"); 
ListItem item2 = new ListItem("Java"); 
ListItem item3 = new ListItem("Java Servlets");        
list.add(item1); 
list.add(item2); 
list.add(item3);

Step 7: Adding list to the cell of a table

Now, add the above created list to the cell of the table using the add() method of the Cell class. And, add this cell to the table using the addCell() method of the Table class, as shown below.

listCell.add(list); 
table.addCell(listCell);

Step 8: Adding table to the document

Add the table object created in the previous step using the add() method of the Document class, as shown below.

// Adding list to the document 
document.add(table);

Step 9: Closing the Document

Close the document using the close() method of the Document class, as shown below.

// Closing the document 
document.close();

Example

The following Java program demonstrates how to add a list to a cell of a table in a PDF document using the iText library. It creates a PDF document with the name addingObjects.pdf, adds a table to it, inserts a list to one of its cells, and saves it in the path C:/itextExamples/

Save this code in a file with the name AddingListsToTable.java.

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Cell; 
import com.itextpdf.layout.element.List; 
import com.itextpdf.layout.element.ListItem; 
import com.itextpdf.layout.element.Table; 
import com.itextpdf.layout.property.TextAlignment;  

public class AddingListsToTable {      
   public static void main(String args[]) throws Exception {              
      // Creating a PdfWriter object
      String file = "C:/itextExamples/addingObjects.pdf";       
      PdfDocument pdfDoc = new PdfDocument(new PdfWriter(file));                   
      
      // Creating a Document object       
      Document doc = new Document(pdfDoc);               
      
      // Creating a table       
      float [] pointColumnWidths = {300F, 300F};       
      Table table = new Table(pointColumnWidths);                            
      
      // Adding row 1 to the table                
      Cell c1 = new Cell();       
      c1.add("Java Related Tutorials");       
      c1.setTextAlignment(TextAlignment.LEFT);       
      table.addCell(c1);                      
      
      List list1 = new List();       
      ListItem item1 = new ListItem("JavaFX");
      ListItem item2 = new ListItem("Java");       
      ListItem item3 = new ListItem("Java Servlets");              
      list1.add(item1);       
      list1.add(item2);       
      list1.add(item3);                 
      
      Cell c2 = new Cell();       
      c2.add(list1);       
      c2.setTextAlignment(TextAlignment.LEFT);       
      table.addCell(c2);                 
      
      // Adding row 2 to the table                
      Cell c3 = new Cell();       
      c3.add("No SQL Databases");       
      c3.setTextAlignment(TextAlignment.LEFT);       
      table.addCell(c3);                     
      
      List list2 = new List();       
      list2.add(new ListItem("HBase"));       
      list2.add(new ListItem("Neo4j"));       
      list2.add(new ListItem("MongoDB"));                 
      
      Cell c4 = new Cell();       
      c4.add(list2); 
      c4.setTextAlignment(TextAlignment.LEFT);       
      table.addCell(c4);                       
      
      // Adding Table to document        
      doc.add(table);                  
      
      // Closing the document       
      doc.close();  
      System.out.println("Lists added to table successfully..");     
   } 
}

Compile and execute the saved Java file from the Command prompt using the following commands −

javac AddingListsToTable.java 
java AddingListsToTable

Upon execution, the above program creates a PDF document, displaying the following message.

Lists added to table successfully..

If you verify the specified path, you can find the created PDF document, as shown below.

In this chapter, we will see how to add an image to a PDF document using the iText library.

Adding Image to a Pdf

You can create an empty PDF Document by instantiating the Document class. While instantiating this class, you need to pass a PdfDocument object as a parameter, to its constructor. To add image to the PDF, create an object of the image that is required to be added and add it using the add() method of the Document class.

Following are the steps to add an image to the PDF document.

Step 1: Creating a PdfWriter object

The PdfWriter class represents the DocWriter for a PDF. This class belongs to the package com.itextpdf.kernel.pdf. The constructor of this class accepts a string, representing the path of the file where the PDF is to be created.

Instantiate the PdfWriter class by passing a string value (representing the path where you need to create a PDF) to its constructor, as shown below.

// Creating a PdfWriter 
String dest = "C:/itextExamples/addingImage.pdf"; 
PdfWriter writer = new PdfWriter(dest);

When an object of this type is passed to a PdfDocument (class), every element added to this document will be written to the file specified.

Step 2: Creating a PdfDocument object

The PdfDocument class is the class that represents the PDF Document in iText. This class belongs to the package com.itextpdf.kernel.pdf. To instantiate this class (in writing mode), you need to pass an object of the class PdfWriter to its constructor.

Instantiate the PdfDocument class by passing the above created PdfWriter object to its constructor, as shown below.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Once a PdfDocument object is created, you can add various elements like page, font, file attachment, and event handler using the respective methods provided by its class.

Step 3: Creating the Document object

The Document class of the package com.itextpdf.layout is the root element while creating a self-sufficient PDF. One of the constructors of this class accepts an object of the class PdfDocument.

Instantiate the Document class by passing the object of the class PdfDocument created in the previous steps, as shown below.

// Creating a Document   Document 
document = new Document(pdfDoc);

Step 4: Creating an Image object

To create the image object, first of all, create an ImageData object using the create() method of the ImageDataFactory class. As a parameter of this method, pass a string parameter representing the path of the image, as shown below.

// Creating an ImageData object 
String imageFile = "C:/itextExamples/javafxLogo.jpg"; 
ImageData data = ImageDataFactory.create(imageFile);

Now, instantiate the Image class of the com.itextpdf.layout.element package. While instantiating, pass the above created ImageData object as a parameter to its constructor, as shown below.

// Creating an Image object 
Image img = new Image(data);

Step 5: Adding image to the document

Add the image object created in the previous step using the add() method of the Document class, as shown below.

// Adding image to the document 
document.add(img);

Step 6: Closing the Document

Close the document using the close() method of the Document class, as shown below.

// Closing the document 
document.close();

Example

The following Java program demonstrates how to add an image to a PDF document using the iText library. It creates a PDF document with the name addingImage.pdf, adds an image to it, and saves it in the path C:/itextExamples/.

Save this code in a file with name AddingImage.java.

import com.itextpdf.io.image.ImageData; 
import com.itextpdf.io.image.ImageDataFactory; 

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter;

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Image;  

public class AddingImage {      
   public static void main(String args[]) throws Exception {              
      
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/addingImage.pdf";       
      PdfWriter writer = new PdfWriter(dest);        
      
      // Creating a PdfDocument       
      PdfDocument pdf = new PdfDocument(writer);              
      
      // Creating a Document        
      Document document = new Document(pdf);              
      
      // Creating an ImageData object       
      String imFile = "C:/itextExamples/logo.jpg";       
      ImageData data = ImageDataFactory.create(imFile);              
      
      // Creating an Image object        
      Image image = new Image(data);                        
      
      // Adding image to the document       
      document.add(image);              
      
      // Closing the document       
      document.close();              
      
      System.out.println("Image added");    
   } 
}

Compile and execute the saved Java file from the Command prompt using the following commands −

javac AddingImage.java 
java AddingImage

Upon execution, the above program creates a PDF document displaying the following message.

Image added

If you verify the specified path, you can find the created PDF document, as shown below.

In this chapter, we will see how to set the position of an image in a PDF document using the iText library.

Setting the Position of the Image

You can create an empty PDF Document by instantiating the Document class. While instantiating this class, you need to pass a PdfDocument object as a parameter to its constructor.

To add an image to the pdf, create and an object of the image that is required to be added and add it using the add() method of the Document class. You can insert the image in a desired position on the document using the method setFixedPosition() of the Image class.

Following are the steps to set the position of an image in the PDF document.

Step 1: Creating a PdfWriter object

The PdfWriter class represents the DocWriter for a PDF. This class belongs to the package com.itextpdf.kernel.pdf. The constructor of this class accepts a string, representing the path of the file where the PDF is to be created.

Instantiate the PdfWriter class by passing a string value (representing the path where you need to create a PDF) to its constructor, as shown below.

// Creating a PdfWriter 
String dest = "C:/itextExamples/positionOfImage.pdf"; 
PdfWriter writer = new PdfWriter(dest);

When an object of this type is passed to a PdfDocument (class), every element added to this document will be written to the file specified.

Step 2: Creating a PdfDocument object

The PdfDocument class is the class that represents the PDF Document in iText. This class belongs to the package com.itextpdf.kernel.pdf. To instantiate this class (in writing mode), you need to pass an object of the class PdfWriter to its constructor.

Instantiate the PdfDocument class by passing the above created PdfWriter object to its constructor, as shown below.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Once a PdfDocument object is created, you can add various elements like page, font, file attachment, and event handler using the respective methods provided by its class.

Step 3: Creating the Document object

The Document class of the package com.itextpdf.layout is the root element while creating a self-sufficient PDF. One of the constructors of this class accepts an object of the class PdfDocument.

Istanziare il file Document class passando l'oggetto della classe PdfDocument creato nei passaggi precedenti, come mostrato di seguito.

// Creating a Document  
Document document = new Document(pdfDoc);

Passaggio 4: creazione di un oggetto immagine

Per creare l'oggetto immagine, prima di tutto, crea un file ImageData oggetto utilizzando il create() metodo del ImageDataFactoryclasse. Come parametro di questo metodo, passare un parametro stringa che rappresenta il percorso dell'immagine, come mostrato di seguito.

// Creating an ImageData object 
String imageFile = "C:/itextExamples/javafxLogo.jpg"; 
ImageData data = ImageDataFactory.create(imageFile);

Ora, istanzia il file Image classe di com.itextpdf.layout.elementpacchetto. Durante l'istanza, passa il fileImageData oggetto come parametro del suo costruttore, come mostrato di seguito.

// Creating an Image object 
Image img = new Image(data);

Passaggio 5: impostazione della posizione dell'immagine

È possibile impostare la posizione dell'immagine in un documento PDF utilizzando il setFixedPosition()metodo dell'immagine. Impostare la posizione dell'immagine sulle coordinate (100, 250) sul documento utilizzando questo metodo, come mostrato di seguito.

// Setting the position of the image to the center of the page 
image.setFixedPosition(100, 250);

Passaggio 6: aggiunta di un'immagine al documento

Ora aggiungi l'oggetto immagine, creato nel passaggio precedente, utilizzando il file add() metodo del Document classe, come mostrato di seguito.

// Adding image to the document 
document.add(img);

Passaggio 7: chiusura del documento

Chiudere il documento utilizzando il file close() metodo del Document classe, come mostrato di seguito.

// Closing the document 
document.close();

Esempio

Il seguente programma Java dimostra come impostare un'immagine nella posizione desiderata su un documento PDF utilizzando la libreria iText. Crea un documento PDF con il nomepositionOfImage.pdf, aggiunge un'immagine, la posiziona più vicino al centro della pagina e la salva nel percorso C:/itextExamples/

Salva questo codice in un file con il nome SettingPosition.java.

import com.itextpdf.io.image.ImageData; 
import com.itextpdf.io.image.ImageDataFactory; 

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Image;  

public class SettingPosition {      
   public static void main(String args[]) throws Exception {              
      // Creating a PdfWriter       
      String dest = "C:/EXAMPLES/itextExamples/3images/positionOfImage.pdf";       
      PdfWriter writer = new PdfWriter(dest);               
      
      // Creating a PdfDocument       
      PdfDocument pdfDoc = new PdfDocument(writer);              
      
      // Creating a Document        
      Document document = new Document(pdfDoc);              
      
      // Creating an ImageData object       
      String imFile = "C:/EXAMPLES/itextExamples/3images/logo.jpg";       
      ImageData data = ImageDataFactory.create(imFile);             

      // Creating an Image object        
      Image image = new Image(data);                
      
      // Setting the position of the image to the center of the page       
      image.setFixedPosition(100, 250);                  
      
      // Adding image to the document       
      document.add(image);              
      
      // Closing the document       
      document.close();
      
      System.out.println("Image added");    
   } 
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi.

javac SettingPosition.java 
java SettingPosition

Al momento dell'esecuzione, il programma di cui sopra crea un documento PDF, visualizzando il seguente messaggio.

Image added

Se verifichi il percorso specificato, puoi trovare il documento PDF creato come mostrato di seguito.

In questo capitolo vedremo come ridimensionare un'immagine in un documento PDF utilizzando la libreria iText.

Ridimensionamento di un'immagine in un PDF

È possibile creare un documento PDF vuoto istanziando il file Documentclasse. Durante la creazione di un'istanza di questa classe, è necessario superare un filePdfDocument oggetto come parametro del suo costruttore.

Per aggiungere un'immagine al PDF, creare un oggetto dell'immagine che deve essere aggiunto e aggiungerlo utilizzando il file add() metodo del Documentclasse. Puoi ridimensionare un'immagine usando ilsetAutoScale() metodo.

Di seguito sono riportati i passaggi per ridimensionare un'immagine esistente nel documento PDF.

Passaggio 1: creazione di un oggetto PdfWriter

Il PdfWriterclass rappresenta il DocWriter per un PDF. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.

Istanziare la classe PdfWriter passando un valore stringa (che rappresenta il percorso in cui è necessario creare un PDF) al suo costruttore, come mostrato di seguito.

// Creating a PdfWriter 
String dest = "C:/itextExamples/autoScale.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Quando un oggetto di questo tipo viene passato a un PdfDocument (classe), ogni elemento aggiunto a questo documento verrà scritto nel file specificato.

Passaggio 2: creazione di un oggetto PdfDocument

Il PdfDocumentclass è la classe che rappresenta il documento PDF in iText. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura), è necessario passare un oggetto della classePdfWriter al suo costruttore.

Istanziare il file PdfDocument class passando l'oggetto PdfWriter creato sopra al suo costruttore, come mostrato di seguito.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Una volta creato un oggetto PdfDocument, è possibile aggiungere vari elementi come pagina, font, file allegati e gestore eventi utilizzando i rispettivi metodi forniti dalla sua classe.

Passaggio 3: creazione dell'oggetto Documento

Il Document classe del pacchetto com.itextpdf.layoutè l'elemento principale durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classe PdfDocument.

Istanziare il file Document class passando l'oggetto della classe PdfDocument creato nei passaggi precedenti, come mostrato di seguito.

// Creating a Document   
Document document = new Document(pdfDoc);

Passaggio 4: creazione di un oggetto immagine

Per creare un oggetto immagine, prima di tutto, crea un file ImageData oggetto utilizzando il create() metodo del ImageDataFactoryclasse. Come parametro di questo metodo, passare un parametro stringa che rappresenta il percorso dell'immagine, come mostrato di seguito.

// Creating an ImageData object 
String imageFile = "C:/itextExamples/javafxLogo.jpg"; 
ImageData data = ImageDataFactory.create(imageFile);

Ora, istanzia il file Image classe di com.itextpdf.layout.elementpacchetto. Durante l'istanza, passa il fileImageData oggetto come parametro del suo costruttore, come mostrato di seguito.

// Creating an Image object 
Image img = new Image(data);

Passaggio 5: ridimensionare un'immagine

Puoi ridimensionare un'immagine usando il setAutoScale() metodo.

// Setting the position of the image to the center of the page 
image.setFixedPosition(100, 250);

Passaggio 6: aggiunta di un'immagine al documento

Ora aggiungi il file image oggetto creato nel passaggio precedente utilizzando il add() metodo del Document classe, come mostrato di seguito.

// Adding image to the document 
document.add(img);

Passaggio 7: chiusura del documento

Chiudere il documento utilizzando il file close() metodo del Document classe, come mostrato di seguito.

// Closing the document 
document.close();

Esempio

Il seguente programma Java dimostra come ridimensionare un'immagine in base alla dimensione del documento su un documento PDF utilizzando la libreria iText. Crea un documento PDF con il nomeautoScale.pdf, aggiunge un'immagine, la ridimensiona rispetto alle dimensioni della pagina, la salva nel percorso C:/itextExamples/.

Salva questo codice in un file con nome SettingAutoScale.java.

import com.itextpdf.io.image.ImageData; 
import com.itextpdf.io.image.ImageDataFactory; 

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Image;  

public class SettingAutoScale {      
   public static void main(String args[]) throws Exception{              
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/positionOfImage.pdf";       
      PdfWriter writer = new PdfWriter(dest);               
      
      // Creating a PdfDocument       
      PdfDocument pdfDoc = new PdfDocument(writer);              
      
      // Creating a Document        
      Document document = new Document(pdfDoc);              
      
      // Creating an ImageData object       
      String imFile = "C:/itextExamples/logo.jpg";       
      ImageData data = ImageDataFactory.create(imFile);              
      
      // Creating an Image object        
      Image image = new Image(data);                
      
      // Setting the position of the image to the center of the page       
      image.setFixedPosition(100,250); 
      
      // Adding image to the document       
      document.add(image);              
      
      // Closing the document       
      document.close();
      System.out.println("Image Scaled");    
   } 
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi.

javac SettingAutoScale.java 
java SettingAutoScale

Al momento dell'esecuzione, il programma precedente crea un documento PDF che mostra il seguente messaggio.

Image Scaled

Se verifichi il percorso specificato, puoi trovare il documento PDF creato come mostrato di seguito.

In questo capitolo vedremo come inserire un'immagine in un documento PDF e come ruotare quell'immagine, utilizzando le funzioni disponibili nella libreria iText.

Rotazione di un'immagine in un PDF

È possibile creare un documento PDF vuoto istanziando il file Documentclasse. Durante la creazione di un'istanza di questa classe, è necessario superare un filePdfDocument oggetto come parametro del suo costruttore.

Per aggiungere un'immagine al PDF, creare un oggetto dell'immagine che deve essere aggiunto e aggiungerlo utilizzando il file add() metodo del Documentclasse. Puoi ruotare un'immagine usando ilsetRotationAngle() metodo.

Di seguito sono riportati i passaggi per ruotare un'immagine in un documento PDF.

Passaggio 1: creazione di un oggetto PdfWriter

Il PdfWriterclass rappresenta il DocWriter per un PDF. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.

Istanziare la classe PdfWriter passando un valore stringa (che rappresenta il percorso in cui è necessario creare un PDF) al suo costruttore, come mostrato di seguito.

// Creating a PdfWriter 
String dest = "C:/itextExamples/rotatingImage.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Quando un oggetto di questo tipo viene passato a un PdfDocument (classe), ogni elemento aggiunto a questo documento verrà scritto nel file specificato.

Passaggio 2: creazione di un oggetto PdfDocument

Il PdfDocumentclass è la classe che rappresenta il documento PDF in iText. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura), è necessario passare un oggetto della classePdfWriter al suo costruttore.

Istanziare la classe PdfDocument passando l'oggetto PdfWriter al suo costruttore, come mostrato di seguito.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Una volta creato un oggetto PdfDocument, è possibile aggiungere vari elementi come pagina, font, file allegati e gestore eventi utilizzando i rispettivi metodi forniti dalla sua classe.

Passaggio 3: creazione dell'oggetto Documento

Il Document classe del pacchetto com.itextpdf.layoutè l'elemento principale durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classe PdfDocument.

Istanziare il file Document class passando l'oggetto della classe PdfDocument creato nei passaggi precedenti, come mostrato di seguito.

// Creating a Document   
Document document = new Document(pdfDoc);

Passaggio 4: creazione di un oggetto immagine

Per creare un oggetto immagine, prima di tutto, crea un file ImageData oggetto utilizzando il create()metodo del ImageDataFactoryclasse. Come parametro di questo metodo, passare un parametro stringa che rappresenta il percorso dell'immagine, come mostrato di seguito.

// Creating an ImageData object 
String imageFile = "C:/itextExamples/javafxLogo.jpg"; 
ImageData data = ImageDataFactory.create(imageFile);

Ora, istanzia il file Image classe di com.itextpdf.layout.elementpacchetto. Durante l'istanza, passa il fileImageData object, come parametro del suo costruttore, come mostrato di seguito.

// Creating an Image object 
Image img = new Image(data);

Passaggio 5: rotazione di un'immagine

Puoi ruotare un'immagine usando il setRotationAngle()metodo. A questo metodo, è necessario passare un numero intero che rappresenta l'angolo di rotazione in base al quale si desidera ruotare l'immagine.

// Rotating the image 
image.setRotationAngle(45);

Passaggio 6: aggiunta di un'immagine al documento

Ora aggiungi l'oggetto immagine creato nel passaggio precedente utilizzando il file add() metodo del Document classe, come mostrato di seguito.

// Adding image to the document 
document.add(img);

Passaggio 7: chiusura del documento

Chiudere il documento utilizzando il file close() metodo del Document classe, come mostrato di seguito.

// Closing the document 
document.close();

Esempio

Il seguente programma Java dimostra come ruotare un'immagine di un determinato angolo su un documento PDF utilizzando la libreria iText.

Crea un documento PDF con il nome rotatingImage.pdf, aggiunge un'immagine, la ruota e la salva nel tracciato C:/itextExamples/.

Salva questo codice in un file con il nome RotatingImage.java.

import com.itextpdf.io.image.ImageData; 
import com.itextpdf.io.image.ImageDataFactory; 

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Image;  

public class RotatingImage {    
   public static void main(String args[]) throws Exception {              
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/rotatingImage.pdf";       
      PdfWriter writer = new PdfWriter(dest);               
      
      // Creating a PdfDocument       
      PdfDocument pdfDoc = new PdfDocument(writer);              
      
      // Creating a Document        
      Document document = new Document(pdfDoc);              
      
      // Creating an ImageData object       
      String imFile = "C:/itextExamples/logo.jpg";       
      ImageData data = ImageDataFactory.create(imFile);              
      
      // Creating an Image object        
      Image image = new Image(data);                
      
      // Rotating the image       
      image.setRotationAngle(45);                       
      
      // Adding image to the document       
      document.add(image);              
      
      // Closing the document       
      document.close(); 
      
      System.out.println("Image rotated");    
   } 
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi:

javac RotatingImage.java 
java RotatingImage

Al momento dell'esecuzione, il programma precedente crea un documento PDF che mostra il seguente messaggio.

Image Rotated

Se verifichi il percorso specificato, puoi trovare il documento PDF creato come mostrato di seguito.

In questo capitolo vedremo come aggiungere annotazioni di testo a un documento PDF utilizzando la libreria iText.

Creazione di un'annotazione di testo in un PDF

È possibile creare un documento PDF vuoto istanziando il file Documentclasse. Durante la creazione di un'istanza di questa classe, è necessario superare un filePdfDocument oggetto come parametro del suo costruttore.

Per utilizzare l'annotazione di testo nel documento PDF, è necessario creare un oggetto di PdfTextAnnotation class e aggiungilo al file PdfPage.

Di seguito sono riportati i passaggi per utilizzare l'annotazione di testo nel documento PDF.

Passaggio 1: creazione di un oggetto PdfWriter

Il PdfWriterclass rappresenta il DocWriter per un PDF. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.

Istanziare la classe PdfWriter passando un valore stringa (che rappresenta il percorso in cui è necessario creare un PDF) al suo costruttore, come mostrato di seguito.

// Creating a PdfWriter 
String dest = "C:/itextExamples/textAnnotation.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Quando un oggetto di questo tipo viene passato a un PdfDocument (classe), ogni elemento aggiunto a questo documento verrà scritto nel file specificato.

Passaggio 2: creazione di un oggetto PdfDocument

Il PdfDocumentclass è la classe che rappresenta il documento PDF in iText. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura), è necessario passare un oggetto della classePdfWriter al suo costruttore.

Istanziare il file PdfDocument class passando il PdfWriter oggetto al suo costruttore, come mostrato di seguito.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Una volta creato un oggetto PdfDocument, è possibile aggiungere vari elementi come pagina, font, file allegati e gestore eventi utilizzando i rispettivi metodi forniti dalla sua classe.

Passaggio 3: creazione dell'oggetto Documento

Il Document classe del pacchetto com.itextpdf.layoutè l'elemento principale durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classePdfDocument.

Istanziare il file Document class passando l'oggetto della classe PdfDocument creato nei passaggi precedenti, come mostrato di seguito.

// Creating a Document   
Document document = new Document(pdfDoc);

Passaggio 4: creazione dell'oggetto PdfAnnotation

Il PdfAnnotation classe del pacchetto com.itextpdf.kernel.pdf.annot rappresenta la superclasse di tutte le annotazioni.

Tra le sue classi derivate, PdfTextAnnotationclass rappresenta l'annotazione di testo. Crea un oggetto di questa classe come mostrato di seguito.

// Creating PdfAnnotation 
Rectangle rect = new Rectangle(20, 800, 0, 0); 
PdfAnnotation ann = new PdfTextAnnotation(rect);

Passaggio 5: impostazione del colore dell'annotazione

Imposta il colore per l'annotazione usando il setColor() metodo del PdfAnnotationclasse. A questo metodo, passa il filecolor oggetto che rappresenta il colore dell'annotazione come parametro.

// Setting color to the annotation 
ann.setColor(Color.GREEN);

Passaggio 6: impostazione del titolo e del contenuto dell'annotazione

Impostare il titolo e il contenuto dell'annotazione utilizzando il setTitle() e setContents() metodi di PdfAnnotation classe rispettivamente, come mostrato di seguito.

// Setting title to the annotation 
ann.setTitle(new PdfString("Hello"));        

// Setting contents of the annotation 
ann.setContents("Hi welcome to Tutorialspoint.");

Passaggio 7: aggiunta dell'annotazione a una pagina

Creane uno nuovo PdfPage classe utilizzando il addNewPage() metodo della classe PdfDocument e aggiungi l'annotazione sopra usando il addAnnotation() metodo di PdfPage classe, come mostrato di seguito.

// Creating a new page PdfPage page = 
pdf.addNewPage();        

// Adding annotation to a page in a PDF 
page.addAnnotation(ann);

Passaggio 8: chiusura del documento

Chiudere il documento utilizzando il file close() metodo del Document classe, come mostrato di seguito.

// Closing the document 
document.close();

Esempio

Il seguente programma Java dimostra come aggiungere annotazioni di testo a un documento PDF utilizzando la libreria iText. Crea un documento PDF con il nometextAnnotation.pdf, vi aggiunge un'annotazione di testo e la salva nel percorso C:/itextExamples/

Salva questo codice in un file con il nome TextAnnotation.java.

import com.itextpdf.kernel.color.Color; 
import com.itextpdf.kernel.geom.Rectangle; 
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage; 
import com.itextpdf.kernel.pdf.PdfString; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.annot.PdfAnnotation; 
import com.itextpdf.kernel.pdf.annot.PdfTextAnnotation; 
import com.itextpdf.layout.Document;  

public class TextAnnotation {    
   public static void main(String args[]) throws Exception {        
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/textAnnotation.pdf";       
      PdfWriter writer = new PdfWriter(dest);               
      
      // Creating a PdfDocument       
      PdfDocument pdf = new PdfDocument(writer);               
      
      // Creating a Document        
      Document document = new Document(pdf);             
      
      // Creating PdfTextAnnotation object
      Rectangle rect = new Rectangle(20, 800, 0, 0);       
      PdfAnnotation ann = new PdfTextAnnotation(rect);              
      
      // Setting color to the annotation
      ann.setColor(Color.GREEN);              
      
      // Setting title to the annotation 
      ann.setTitle(new PdfString("Hello"));              
      
      // Setting contents of the annotation       
      ann.setContents("Hi welcome to Tutorialspoint.");              
      
      // Creating a new page       
      PdfPage page =  pdf.addNewPage();              
      
      // Adding annotation to a page in a PDF
      page.addAnnotation(ann);

      // Closing the document       
      document.close();       
      
      System.out.println("Annotation added successfully");    
   } 
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi.

javac TextAnnotation.java 
java TextAnnotation

Al momento dell'esecuzione, il programma precedente crea un documento PDF che mostra il seguente messaggio.

Annotation added successfully

Se verifichi il percorso specificato, puoi trovare il documento PDF creato, come mostrato di seguito.

In questo capitolo vedremo come aggiungere l'annotazione del collegamento a un documento PDF utilizzando la libreria iText.

Creazione di un'annotazione di collegamento in un PDF

È possibile creare un documento PDF vuoto istanziando il file Documentclasse. Durante la creazione di un'istanza di questa classe, è necessario superare un filePdfDocument oggetto come parametro del suo costruttore.

Per utilizzare l'annotazione di testo nel documento PDF, è necessario creare un oggetto della classe PdfTextAnnotation e aggiungerlo a PdfPage.

Di seguito sono riportati i passaggi per utilizzare l'annotazione di testo in un documento PDF.

Passaggio 1: creazione di un oggetto PdfWriter

Il PdfWriterclass rappresenta il DocWriter per un PDF. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.

Istanziare il file PdfWriter class passando un valore stringa (che rappresenta il percorso in cui è necessario creare un PDF) al suo costruttore, come mostrato di seguito.

// Creating a PdfWriter 
String dest = "C:/itextExamples/linkAnnotation.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Quando un oggetto di questo tipo viene passato a un PdfDocument (classe), ogni elemento aggiunto a questo documento verrà scritto nel file specificato.

Passaggio 2: creazione di un oggetto PdfDocument

Il PdfDocumentclass è la classe che rappresenta il documento PDF in iText. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura), è necessario passare un oggetto della classePdfWriter al suo costruttore.

Creare un'istanza della classe PdfDocument passando il PdfWriter oggetto al suo costruttore, come mostrato di seguito.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Una volta creato un oggetto PdfDocument, è possibile aggiungere vari elementi come pagina, font, file allegati e gestore eventi utilizzando i rispettivi metodi forniti dalla sua classe.

Passaggio 3: creazione dell'oggetto Documento

Il Document classe del pacchetto com.itextpdf.layoutè l'elemento principale durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classePdfDocument.

Istanziare il file Document class passando l'oggetto della classe PdfDocument creata nei passaggi precedenti, come mostrato di seguito.

// Creating a Document  
Document document = new Document(pdfDoc);

Passaggio 4: creazione dell'oggetto PdfAnnotation

Il PdfAnnotation classe del pacchetto com.itextpdf.kernel.pdf.annot rappresenta la superclasse di tutte le annotazioni.

Tra le sue classi derivate, PdfLinkAnnotationclass rappresenta l'annotazione del collegamento. Crea un oggetto di questa classe, come mostrato di seguito.

// Creating a PdfLinkAnnotation object 
Rectangle rect = new Rectangle(0, 0); 
PdfLinkAnnotation annotation = new PdfLinkAnnotation(rect);

Passaggio 5: impostazione dell'azione dell'annotazione

Imposta l'azione sull'annotazione utilizzando il setAction() metodo del PdfLinkAnnotation classe, come mostrato di seguito.

// Setting action of the annotation 
PdfAction action = PdfAction.createURI("http: // www.tutorialspoint.com/"); 
annotation.setAction(action);

Passaggio 6: creazione di un collegamento

Crea un collegamento istanziando il file Link classe del pacchetto com.itextpdf.layout.element, come mostrato di seguito.

// Creating a link 
Link link = new Link("Click here", annotation);

Passaggio 7: aggiunta dell'annotazione del collegamento a un paragrafo

Crea un nuovo paragrafo istanziando il file Paragraph class e aggiungere il collegamento creato nel passaggio precedente utilizzando il add() metodo di questa classe, come mostrato di seguito.

// Creating a paragraph 
Paragraph paragraph = new Paragraph("Hi welcome to Tutorialspoint ");        

// Adding link to paragraph 
paragraph.add(link.setUnderline());

Passaggio 8: aggiunta di un paragrafo al documento

Aggiungi il paragrafo al documento usando il add() metodo del Document classe, come mostrato di seguito.

// Adding paragraph to document 
document.add(paragraph);

Passaggio 9: chiusura del documento

Chiudere il documento utilizzando il file close() metodo del Document classe, come mostrato di seguito.

// Closing the document 
document.close();

Esempio

Il seguente programma Java dimostra come aggiungere l'annotazione del collegamento a un documento PDF utilizzando la libreria iText.

Crea un documento PDF con il nome linkAnnotation.pdf, aggiunge un'annotazione di collegamento ad esso e la salva nel percorso C:/itextExamples/

Salva questo codice in un file con il nome LinkAnnotation.java.

import com.itextpdf.kernel.geom.Rectangle; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.action.PdfAction; 
import com.itextpdf.kernel.pdf.annot.PdfLinkAnnotation; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Link; 
import com.itextpdf.layout.element.Paragraph;  

public class LinkAnnotation {      
   public static void main(String args[]) throws Exception {             
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/linkAnnotation.pdf";       
      
      PdfWriter writer = new 
      PdfWriter(dest);               
      
      // Creating a PdfDocument       
      PdfDocument pdf = new PdfDocument(writer);               
      
      // Creating a Document
      Document document = new Document(pdf);              
      
      // Creating a PdfLinkAnnotation object       
      Rectangle rect = new Rectangle(0, 0);       
      PdfLinkAnnotation annotation = new PdfLinkAnnotation(rect);              
      
      // Setting action of the annotation       
      PdfAction action = PdfAction.createURI("http:// www.tutorialspoint.com/");       
      annotation.setAction(action);             
      
      // Creating a link       
      Link link = new Link("Click here", annotation);              
      
      // Creating a paragraph       
      Paragraph paragraph = new Paragraph("Hi welcome to Tutorialspoint ");              
      
      // Adding link to paragraph       
      paragraph.add(link.setUnderline());              
      
      // Adding paragraph to document       
      document.add(paragraph);             

      // Closing the document       
      document.close();              
      
      System.out.println("Annotation added successfully");    
   } 
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi:

javac LinkAnnotation.java 
java LinkAnnotation

Al momento dell'esecuzione, il programma precedente crea un documento PDF che mostra il seguente messaggio.

Annotation added successfully

Se verifichi il percorso specificato, puoi trovare il documento PDF creato, come mostrato di seguito.

In questo capitolo vedremo come aggiungere un'annotazione di riga a un documento PDF utilizzando la libreria iText.

Creazione di un'annotazione di linea in un PDF

È possibile creare un documento PDF vuoto istanziando il file Documentclasse. Durante la creazione di un'istanza di questa classe, è necessario superare un filePdfDocument oggetto come parametro, al suo costruttore.

Per utilizzare l'annotazione di testo nel documento PDF, è necessario creare un oggetto di PdfTextAnnotation class e aggiungilo al file PdfPage.

Di seguito sono riportati i passaggi per utilizzare l'annotazione di testo nel documento PDF.

Passaggio 1: creazione di un oggetto PdfWriter

Il PdfWriterclass rappresenta il DocWriter per un PDF. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.

Istanziare la classe PdfWriter passando un valore stringa che rappresenta il percorso in cui è necessario creare un PDF, al suo costruttore, come mostrato di seguito.

// Creating a PdfWriter 
String dest = "C:/itextExamples/lineAnnotation.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Quando un oggetto di questo tipo viene passato a un PdfDocument (classe), ogni elemento aggiunto a questo documento verrà scritto nel file specificato.

Passaggio 2: creazione di un oggetto PdfDocument

Il PdfDocumentclass è la classe che rappresenta il PDFDocument in iText. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura), è necessario passare un oggetto della classePdfWriter al suo costruttore.

Istanziare la classe PdfDocument passando l'oggetto PdfWriter al suo costruttore, come mostrato di seguito.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Una volta creato un oggetto PdfDocument, puoi aggiungere vari elementi come pagina, font, file allegato, gestore di eventi utilizzando i rispettivi metodi forniti dalla sua classe.

Passaggio 3: creazione dell'oggetto Documento

Il Document classe del pacchetto com.itextpdf.layoutè l'elemento principale durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classePdfDocument.

Istanziare la classe Document passando l'oggetto della classe PdfDocument creato nei passaggi precedenti, come mostrato di seguito.

// Creating a Document  
Document document = new Document(pdfDoc);

Passaggio 4: creazione dell'oggetto PdfAnnotation

Il PdfAnnotation classe del pacchetto com.itextpdf.kernel.pdf.annot rappresenta è la superclasse di tutte le annotazioni.

Tra le sue classi derivate, PdfLineAnnotationclass rappresenta l'annotazione di riga. Crea un oggetto di questa classe come mostrato di seguito.

// Creating PdfAnnotation 
Rectangle rect = new Rectangle(20, 800, 0, 0); 
PdfAnnotation annotation = new PdfLineAnnotation(rect);

Passaggio 5: impostazione del colore dell'annotazione

Imposta il colore per l'annotazione usando il setColor() metodo del PdfAnnotationclasse. A questo metodo, passare come parametro l'oggetto color che rappresenta il colore dell'annotazione.

// Setting color to the annotation 
annotation.setColor(Color.BLUE);

Passaggio 6: impostazione del titolo e del contenuto dell'annotazione

Impostare il titolo e il contenuto dell'annotazione utilizzando il setTitle() e setContents() metodi di PdfAnnotation classe rispettivamente, come mostrato di seguito.

// Setting title to the PdfLineAnnotation 
annotation.setTitle(new PdfString("iText"));        

// Setting contents of the PdfLineAnnotation 
annotation.setContents("Hi welcome to Tutorialspoint");

Passaggio 7: aggiunta dell'annotazione a una pagina

Creane uno nuovo PdfPage classe utilizzando il addNewPage() metodo del PdfDocument class e aggiungi l'annotazione creata sopra usando il metodo addAnnotation () della classe PdfPage, come mostrato di seguito.

// Creating a new page 
PdfPage page = pdf.addNewPage();

// Adding annotation to a page in a PDF 
page.addAnnotation(annotation);

Passaggio 8: chiusura del documento

Chiudere il documento utilizzando il file close() metodo del Document classe, come mostrato di seguito.

// Closing the document 
document.close();

Esempio

Il seguente programma Java dimostra come aggiungere un'annotazione di riga a un documento PDF utilizzando la libreria iText. Crea un documento PDF con il nomelineAnnotation.pdf, aggiunge un'annotazione di riga e la salva nel percorso C:/itextExamples/.

Salva questo codice in un file con nome LineAnnotation.java.

import com.itextpdf.kernel.color.Color; 
import com.itextpdf.kernel.geom.Rectangle; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfPage; 
import com.itextpdf.kernel.pdf.PdfString; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.annot.PdfAnnotation; 
import com.itextpdf.kernel.pdf.annot.PdfLineAnnotation; 
import com.itextpdf.layout.Document;  

public class LineAnnotation {
   public static void main(String args[]) throws Exception {             
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/lineAnnotations.pdf";       
      PdfWriter writer = new PdfWriter(dest);               

      // Creating a PdfDocument       
      PdfDocument pdf = new PdfDocument(writer);               

      // Creating a Document        
      Document document = new Document(pdf);              
      
      // Creating a PdfPage       
      PdfPage page = pdf.addNewPage();              

      // creating PdfLineAnnotation object       
      Rectangle rect = new Rectangle(0, 0);
      float[] floatArray  = new float[]{
         20, 790, page.getPageSize().getWidth() - 20, 790
      };
      PdfAnnotation annotation = new PdfLineAnnotation(rect, floatArray);              
      
      // Setting color of the PdfLineAnnotation       
      annotation.setColor(Color.BLUE);              
      
      // Setting title to the PdfLineAnnotation       
      annotation.setTitle(new PdfString("iText"));              
      
      // Setting contents of the PdfLineAnnotation       
      annotation.setContents("Hi welcome to Tutorialspoint");              
      
      // Adding annotation to the page       
      page.addAnnotation(annotation);               
      
      // Closing the document       
      document.close();              
      
      System.out.println("Annotation added successfully");   
   } 
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi:

javac LineAnnotation.java 
java LineAnnotation

Al momento dell'esecuzione, il programma precedente crea un documento PDF che mostra il seguente messaggio.

Annotation added successfully

Se verifichi il percorso specificato, puoi trovare il documento PDF creato come mostrato di seguito.

In questo capitolo vedremo come aggiungere annotazioni di markup di testo a un documento PDF utilizzando la libreria iText.

Creazione di un'annotazione di markup in un PDF

È possibile creare un documento PDF vuoto istanziando il file Documentclasse. Durante la creazione di un'istanza di questa classe, è necessario superare un filePdfDocumentoggetto come parametro del suo costruttore. Per utilizzare l'annotazione di testo nel documento PDF, è necessario creare un oggetto diPdfTextAnnotation class e aggiungilo al file PdfPage.

Di seguito sono riportati i passaggi per utilizzare l'annotazione di testo nel documento PDF.

Passaggio 1: creazione di un oggetto PdfWriter

Il PdfWriterclass rappresenta il DocWriter per un PDF. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.

Istanziare la classe PdfWriter passando un valore stringa (che rappresenta il percorso in cui è necessario creare un PDF) al suo costruttore, come mostrato di seguito.

// Creating a PdfWriter 
String dest = "C:/itextExamples/markupAnnotation.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Quando un oggetto di questo tipo viene passato a un PdfDocument (classe), ogni elemento aggiunto a questo documento verrà scritto nel file specificato.

Passaggio 2: creazione di un oggetto PdfDocument

Il PdfDocumentclass è la classe che rappresenta il documento PDF in iText. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura), è necessario passare un oggetto della classePdfWriter al suo costruttore.

Istanziare la classe PdfDocument passando l'oggetto PdfWriter al suo costruttore, come mostrato di seguito.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Una volta creato un oggetto PdfDocument, è possibile aggiungere vari elementi come pagina, font, file allegati e gestore eventi utilizzando i rispettivi metodi forniti dalla sua classe.

Passaggio 3: creazione dell'oggetto Documento

Il Document classe del pacchetto com.itextpdf.layoutè l'elemento principale durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classePdfDocument.

Istanziare il file Document class passando l'oggetto della classe PdfDocument creato nei passaggi precedenti, come mostrato di seguito.

// Creating a Document   
Document document = new Document(pdfDoc);

Passaggio 4: creazione dell'oggetto PdfAnnotation

Il PdfAnnotation classe del pacchetto com.itextpdf.kernel.pdf.annot rappresenta la superclasse di tutte le annotazioni.

Tra le sue classi derivate, PdfTextMarkupAnnotationclass rappresenta l'annotazione del markup di testo. Crea un oggetto di questa classe come mostrato di seguito.

// Creating a PdfTextMarkupAnnotation object 
Rectangle rect = new Rectangle(105, 790, 64, 10); 
float[] floatArray = new float[]{169, 790, 105, 790, 169, 800, 105, 800};
PdfAnnotation annotation = PdfTextMarkupAnnotation.createHighLight(rect,floatArray);

Passaggio 5: impostazione del colore dell'annotazione

Imposta il colore per l'annotazione usando il setColor() metodo del PdfAnnotationclasse. A questo metodo, passa l'oggetto color che rappresenta il filecolor dell'annotazione come parametro.

// Setting color to the annotation 
annotation.setColor(Color.YELLOW);

Passaggio 6: impostazione del titolo e del contenuto dell'annotazione

Impostare il titolo e il contenuto dell'annotazione utilizzando il setTitle() e setContents() metodi di PdfAnnotation classe rispettivamente.

// Setting title to the annotation 
annotation.setTitle(new PdfString("Hello!"));        

// Setting contents to the annotation 
annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));

Passaggio 7: aggiunta dell'annotazione a una pagina

Creane uno nuovo PdfPage classe utilizzando il addNewPage() metodo del PdfDocument class e aggiungi l'annotazione creata sopra usando il addAnnotation() metodo della classe PdfPage, come mostrato di seguito.

// Creating a new Pdfpage 
PdfPage pdfPage = pdfDoc.addNewPage();        

// Adding annotation to a page in a PDF 
pdfPage.addAnnotation(annotation);

Passaggio 8: chiusura del documento

Chiudere il documento utilizzando il file close() metodo del Document classe, come mostrato di seguito.

// Closing the document 
document.close();

Esempio

Il seguente programma Java dimostra come aggiungere annotazioni di markup di testo a un documento PDF utilizzando la libreria iText. Crea un documento PDF con il nomemarkupAnnotation.pdf, aggiunge un'annotazione di markup di testo e la salva nel percorso C:/itextExamples/

Salva questo codice in un file con il nome MarkupAnnotation.java.

import com.itextpdf.kernel.color.Color; 
import com.itextpdf.kernel.geom.Rectangle; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfPage; 
import com.itextpdf.kernel.pdf.PdfString; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.annot.PdfAnnotation; 
import com.itextpdf.kernel.pdf.annot.PdfTextMarkupAnnotation;
import com.itextpdf.layout.Document;  

public class MarkupAnnotation {    
   public static void main(String args[]) throws Exception {   
      // Creating a PdfDocument object       
      String file = "C:/itextExamples/markupAnnotation.pdf";        
      PdfDocument pdfDoc = new PdfDocument(new PdfWriter(file));                   
   
      // Creating a Document object       
      Document doc = new Document(pdfDoc);                      
      
      // Creating a PdfTextMarkupAnnotation object       
      Rectangle rect = new Rectangle(105, 790, 64, 10);       
      float[] floatArray = new float[]{169, 790, 105, 790, 169, 800, 105, 800};
      PdfAnnotation annotation = 
         PdfTextMarkupAnnotation.createHighLight(rect,floatArray);
      
      // Setting color to the annotation       
      annotation.setColor(Color.YELLOW);              
      
      // Setting title to the annotation       
      annotation.setTitle(new PdfString("Hello!"));
      
      // Setting contents to the annotation       
      annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));
      
      // Creating a new Pdfpage
      PdfPage pdfPage = pdfDoc.addNewPage();
      
      // Adding annotation to a page in a PDF       
      pdfPage.addAnnotation(annotation);
      
      // Closing the document
      doc.close();  
      
      System.out.println("Annotation added successfully");       
   }     
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi:

javac MarkupAnnotation.java 
java MarkupAnnotation

Al momento dell'esecuzione, il programma precedente crea un documento PDF che mostra il seguente messaggio.

Annotation added successfully

Se verifichi il percorso specificato, puoi trovare il documento PDF creato come mostrato di seguito.

In questo capitolo vedremo come aggiungere l'annotazione del cerchio a un documento PDF utilizzando la libreria iText.

Creazione di un'annotazione circolare in un PDF

È possibile creare un documento PDF vuoto istanziando il file Documentclasse. Durante la creazione di un'istanza di questa classe, è necessario superare un filePdfDocument oggetto come parametro del suo costruttore.

Per utilizzare l'annotazione di testo nel documento PDF, è necessario creare un oggetto della classe PdfTextAnnotation e aggiungerlo al Pdfpage.

Di seguito sono riportati i passaggi per utilizzare l'annotazione di testo nel documento PDF.

Passaggio 1: creazione di un oggetto PdfWriter

Il PdfWriterclass rappresenta il DocWriter per un PDF. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.

Istanziare il file PdfWriter class passando un valore stringa (che rappresenta il percorso in cui è necessario creare un PDF) al suo costruttore, come mostrato di seguito.

// Creating a PdfWriter 
String dest = "C:/itextExamples/circleAnnotation.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Quando un oggetto di questo tipo viene passato a un PdfDocument (classe), ogni elemento aggiunto a questo documento verrà scritto nel file specificato.

Passaggio 2: creazione di un oggetto PdfDocument

Il PdfDocumentclass è la classe che rappresenta il documento PDF in iText. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura), è necessario passare un oggetto della classePdfWriter al suo costruttore.

Istanziare la classe PdfDocument passando l'oggetto PdfWriter al suo costruttore, come mostrato di seguito.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Una volta creato un oggetto PdfDocument, è possibile aggiungere vari elementi come pagina, font, file allegati e gestore eventi utilizzando i rispettivi metodi forniti dalla sua classe.

Passaggio 3: creazione dell'oggetto Documento

Il Document classe del pacchetto com.itextpdf.layoutè l'elemento principale durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classe PdfDocument.

Istanziare il file Document class passando l'oggetto della classe PdfDocument creato nei passaggi precedenti, come mostrato di seguito.

// Creating a Document  
Document document = new Document(pdfDoc);

Passaggio 4: creazione dell'oggetto PdfAnnotation

Il PdfAnnotation classe del pacchetto com.itextpdf.kernel.pdf.annot rappresenta la superclasse di tutte le annotazioni.

Tra le sue classi derivate, PdfCircleAnnotationclass rappresenta l'annotazione del cerchio. Crea un oggetto di questa classe come mostrato di seguito.

// Creating a PdfCircleAnnotation object Rectangle 
rect = new Rectangle(150, 770, 50, 50); 
PdfAnnotation annotation = new PdfCircleAnnotation(rect);

Passaggio 5: impostazione del colore dell'annotazione

Imposta il colore per l'annotazione usando il setColor() metodo del PdfAnnotationclasse. A questo metodo, passare come parametro l'oggetto color che rappresenta il colore dell'annotazione.

// Setting color to the annotation 
annotation.setColor(Color.YELLOW);

Passaggio 6: impostazione del titolo e del contenuto dell'annotazione

Impostare il titolo e il contenuto dell'annotazione utilizzando il setTitle() e setContents() metodi di PdfAnnotation classe rispettivamente.

// Setting title to the annotation 
annotation.setTitle(new PdfString("circle annotation"));        

// Setting contents of the annotation 
annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));

Passaggio 7: aggiunta dell'annotazione a una pagina

Creane uno nuovo PdfPage classe utilizzando il addNewPage() metodo del PdfDocument class e aggiungi l'annotazione creata sopra usando il addAnnotation() metodo della classe PdfPage, come mostrato di seguito.

// Creating a new page 
PdfPage page = pdf.addNewPage();        

// Adding annotation to a page in a PDF 
page.addAnnotation(ann);

Passaggio 8: chiusura del documento

Chiudere il documento utilizzando il file close() metodo del Document classe, come mostrato di seguito.

// Closing the document 
document.close();

Esempio

Il seguente programma Java dimostra come aggiungere un'annotazione circolare a un documento PDF utilizzando la libreria iText. Crea un documento PDF con il nomecircleAnnotation.pdf, aggiunge un'annotazione a cerchio e la salva nel percorso C:/itextExamples/

Salva questo codice in un file con il nome PdfCircleAnnotation.java.

import com.itextpdf.kernel.color.Color; 
import com.itextpdf.kernel.geom.Rectangle; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfString; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.annot.PdfAnnotation; 
import com.itextpdf.kernel.pdf.annot.PdfCircleAnnotation; 
import com.itextpdf.layout.Document;  

public class CircleAnnotation {    
   public static void main(String args[]) throws Exception {   
      // Creating a PdfDocument object       
      String file = "C:/itextExamples// circleAnnotation.pdf";             
      PdfDocument pdf = new PdfDocument(new PdfWriter(file));                   
   
      // Creating a Document object       
      Document doc = new Document(pdf);                      
   
      // Creating a PdfCircleAnnotation object       
      Rectangle rect = new Rectangle(150, 770, 50, 50);       
      PdfAnnotation annotation = new PdfCircleAnnotation(rect);              
   
      // Setting color to the annotation       
      annotation.setColor(Color.YELLOW);              
   
      // Setting title to the annotation       
      annotation.setTitle(new PdfString("circle annotation"));              
   
      // Setting contents of the annotation 
      annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));             
      
      // Creating a new page        
      PdfPage page = pdf.addNewPage();              
      
      // Adding annotation to a page in a PDF       
      page.addAnnotation(annotation);                       
      
      // Closing the document       
      doc.close();  
      
      System.out.println("Annotation added successfully");       
   }   
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi:

javac PdfCircleAnnotation.java 
java PdfCircleAnnotation

Al momento dell'esecuzione, il programma precedente crea un documento PDF che mostra il seguente messaggio.

Annotation added successfully

Se verifichi il percorso specificato, puoi trovare il documento PDF creato, come mostrato di seguito.

In questo capitolo vedremo come disegnare un arco su un documento PDF utilizzando la libreria iText.

Disegnare un arco su un PDF

È possibile creare un documento PDF vuoto istanziando il file Documentclasse. Durante la creazione di un'istanza di questa classe, è necessario superare un filePdfDocument oggetto come parametro del suo costruttore.

Per disegnare un arco su un PdfDocument, istanziare il file PdfCanvas classe del pacchetto com.itextpdf.kernel.pdf.canvas e crea un arco usando il arc() metodo di questa classe.

Di seguito sono riportati i passaggi per disegnare un arco su un documento PDF.

Passaggio 1: creazione di un oggetto PdfWriter

Il PdfWriterclass rappresenta il DocWriter per un PDF. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.

Istanziare la classe PdfWriter passando un valore stringa (che rappresenta il percorso in cui è necessario creare un PDF) al suo costruttore, come mostrato di seguito.

// Creating a PdfWriter 
String dest = "C:/itextExamples/drawingArc.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Quando l'oggetto di questo tipo viene passato a un PdfDocument (classe), ogni elemento aggiunto a questo documento verrà scritto nel file specificato.

Passaggio 2: creazione di un oggetto PdfDocument

Il PdfDocumentclass è la classe che rappresenta il documento PDF in iText. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura), è necessario passare un oggetto della classePdfWriter al suo costruttore.

Istanziare la classe PdfDocument passando l'oggetto PdfWriter al suo costruttore, come mostrato di seguito.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Una volta creato un oggetto PdfDocument, è possibile aggiungere vari elementi come pagina, font, file allegati e gestore eventi utilizzando i rispettivi metodi forniti dalla sua classe.

Passaggio 3: creazione dell'oggetto Documento

Il Document classe del pacchetto com.itextpdf.layoutè l'elemento principale durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classe PdfDocument.

Istanziare il file Document class passando l'oggetto della classe PdfDocument creato nei passaggi precedenti come mostrato di seguito.

// Creating a Document   
Document document = new Document(pdfDoc);

Passaggio 4: creazione di un oggetto PdfCanvas

Creane uno nuovo PdfPage classe utilizzando il addNewPage() metodo del PdfDocument classe.

Istanziare il file PdfCanvas oggetto della confezione com.itextpdf.kernel.pdf.canvas passando quanto sopra creato PdfPage oggetto al costruttore di questa classe, come mostrato di seguito.

// Creating a new page 
PdfPage pdfPage = pdfDoc.addNewPage();           

// Creating a PdfCanvas object 
PdfCanvas canvas = new PdfCanvas(pdfPage);

Passaggio 5: disegnare l'arco

Disegna l'arco usando il arc() metodo del Canvas class e compilarlo usando il fill() metodo, come mostrato di seguito.

// Drawing an arc 
canvas.arc(50, 50, 300, 545, 0, 360);   

// Filling the arc 
canvas.fill();

Passaggio 6: chiusura del documento

Chiudere il documento utilizzando il file close() metodo del Document classe, come mostrato di seguito.

// Closing the document 
document.close();

Esempio

Il seguente programma Java mostra come disegnare un arco in un documento PDF utilizzando la libreria iText.

Crea un documento PDF con il nome drawingArc.pdf, disegna un arco al suo interno e lo salva nel percorso C:/itextExamples/

Salva questo codice in un file con il nome DrawingArc.java.

import com.itextpdf.kernel.color.Color; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfPage; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.canvas.PdfCanvas; 
import com.itextpdf.layout.Document;  

public class DrawingArc {
   public static void main(String args[]) throws Exception {
      // Creating a PdfWriter
      String dest = "C:/itextExamples/drawingArc.pdf";
      PdfWriter writer = new PdfWriter(dest);      

      // Creating a PdfDocument object
      PdfDocument pdfDoc = new PdfDocument(writer);

      // Creating a Document object
      Document doc = new Document(pdfDoc);

      // Creating a new page
      PdfPage pdfPage = pdfDoc.addNewPage();

      // Creating a PdfCanvas object
      PdfCanvas canvas = new PdfCanvas(pdfPage);

      // Drawing an arc
      canvas.arc(50, 50, 300, 545, 0, 360);

      // Filling the arc
      canvas.fill();              

      // Closing the document
      doc.close();
      
      System.out.println("Object drawn on pdf successfully");       
   }     
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi:

javac DrawingArc.java 
java DrawingArc

Al momento dell'esecuzione, il programma di cui sopra crea un documento PDF, visualizzando il seguente messaggio.

Object drawn on pdf successfully

Se verifichi il percorso specificato, puoi trovare il documento PDF creato, come mostrato di seguito.

In questo capitolo vedremo come disegnare una linea su un documento PDF usando la libreria iText.

Disegnare una linea su un PDF

È possibile creare un documento PDF vuoto istanziando il file Documentclasse. Durante la creazione di un'istanza di questa classe, è necessario superare un filePdfDocument oggetto come parametro, al suo costruttore.

Per disegnare una linea su un PdfDocument Istanziare il file PdfCanvas classe del pacchetto com.itextpdf.kernel.pdf.canvas e crea una linea usando il moveTo() e lineTO() metodi di questa classe.

Di seguito sono riportati i passaggi per tracciare una linea sul documento PDF.

Passaggio 1: creazione di un oggetto PdfWriter

Il PdfWriterclass rappresenta il DocWriter per un PDF. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.

Istanziare la classe PdfWriter passando un valore stringa (che rappresenta il percorso in cui è necessario creare un PDF) al suo costruttore, come mostrato di seguito.

// Creating a PdfWriter 
String dest = "C:/itextExamples/drawingLine.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Quando un oggetto di questo tipo viene passato a un PdfDocument (classe), ogni elemento aggiunto a questo documento verrà scritto nel file specificato.

Passaggio 2: creazione di un oggetto PdfDocument

Il PdfDocumentclass è la classe che rappresenta il documento PDF in iText. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura), è necessario passare un oggetto della classePdfWriter al suo costruttore.

Istanziare la classe PdfDocument passando l'oggetto PdfWriter creato sopra al suo costruttore, come mostrato di seguito.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Una volta creato un oggetto PdfDocument, è possibile aggiungere vari elementi come pagina, font, file allegati e gestore eventi utilizzando i rispettivi metodi forniti dalla sua classe.

Passaggio 3: creazione dell'oggetto Documento

Il Document classe del pacchetto com.itextpdf.layoutè l'elemento principale durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classe PdfDocument.

Istanziare il file Document class passando l'oggetto della classe PdfDocument creato nei passaggi precedenti come mostrato di seguito.

// Creating a Document   
Document document = new Document(pdfDoc);

Passaggio 4: creazione di un oggetto PdfCanvas

Creane uno nuovo PdfPage classe utilizzando il addNewPage() metodo del PdfDocument classe.

Istanziare il file PdfCanvas oggetto della confezione com.itextpdf.kernel.pdf.canvas passando quanto sopra creato PdfPage oggetto al costruttore di questa classe, come mostrato di seguito.

// Creating a new page 
PdfPage pdfPage = pdfDoc.addNewPage();           

// Creating a PdfCanvas object 
PdfCanvas canvas = new PdfCanvas(pdfPage);

Passaggio 5: tracciare la linea

Impostare il punto iniziale della linea utilizzando il moveTO() metodo del Canvas classe, come mostrato di seguito.

// Initial point of the line 
canvas.moveTo(100, 300);

Ora, traccia una linea da questo punto a un altro punto usando il lineTo() metodo, come mostrato di seguito.

// Drawing the line 
canvas.lineTo(500, 300);

Passaggio 6: chiusura del documento

Chiudere il documento utilizzando il file close() metodo del Document classe, come mostrato di seguito.

// Closing the document 
document.close();

Esempio

Il seguente programma Java mostra come disegnare una linea in un documento PDF utilizzando la libreria iText. Crea un documento PDF con il nomedrawingLine.pdf, disegna un arco al suo interno e lo salva nel percorso C:/itextExamples/

Salva questo codice in un file con nome DrawingLine.java.

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfPage; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.canvas.PdfCanvas; 
import com.itextpdf.layout.Document;  

public class DrawingLine {     
   public static void main(String args[]) throws Exception {            
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/drawingLine.pdf";             
      PdfWriter writer = new PdfWriter(dest);           
      
      // Creating a PdfDocument object       
      PdfDocument pdfDoc = new PdfDocument(writer);                   
      
      // Creating a Document object       
      Document doc = new Document(pdfDoc);                
      
      // Creating a new page       
      PdfPage pdfPage = pdfDoc.addNewPage();               
      
      // Creating a PdfCanvas object       
      PdfCanvas canvas = new PdfCanvas(pdfPage);              
      
      // Initial point of the line       
      canvas.moveTo(100, 300);              
      
      // Drawing the line       
      canvas.lineTo(500, 300);           
      
      // Closing the path stroke       
      canvas.closePathStroke();              
      
      // Closing the document       
      doc.close();  
      
      System.out.println("Object drawn on pdf successfully");             
   }     
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi:

javac DrawingLine.java 
java DrawingLine

Al momento dell'esecuzione, il programma di cui sopra crea un documento PDF, visualizzando il seguente messaggio.

Object drawn on pdf successfully

Se verifichi il percorso specificato, puoi trovare il documento PDF creato, come mostrato di seguito.

In questo capitolo vedremo come disegnare un cerchio su un documento PDF utilizzando la libreria iText.

Disegnare un cerchio su un Pdf

È possibile creare un documento PDF vuoto istanziando il file Documentclasse. Durante la creazione di un'istanza di questa classe, è necessario superare un filePdfDocument oggetto come parametro del suo costruttore.

Per disegnare un cerchio su un PdfDocument, istanziare il file PdfCanvas classe del pacchetto com.itextpdf.kernel.pdf.canvas e invoca il circle() metodo di questa classe.

Di seguito sono riportati i passaggi per disegnare un cerchio su un documento PDF.

Passaggio 1: creazione di un oggetto PdfWriter

Il PdfWriterclass rappresenta il DocWriter per un PDF. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.

Istanziare la classe PdfWriter passando un valore stringa (che rappresenta il percorso in cui è necessario creare un PDF) al suo costruttore, come mostrato di seguito.

// Creating a PdfWriter 
String dest = "C:/itextExamples/drawingCircle.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Quando un oggetto di questo tipo viene passato a un PdfDocument (classe), ogni elemento aggiunto a questo documento verrà scritto nel file specificato.

Passaggio 2: creazione di un oggetto PdfDocument

Il PdfDocumentclass è la classe che rappresenta il documento PDF in iText. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura), è necessario passare un oggetto della classePdfWriter al suo costruttore.

Istanziare la classe PdfDocument passando l'oggetto PdfWriter al suo costruttore, come mostrato di seguito.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Una volta creato un oggetto PdfDocument, è possibile aggiungere vari elementi come pagina, font, file allegati e gestore eventi utilizzando i rispettivi metodi forniti dalla sua classe.

Passaggio 3: creazione dell'oggetto Documento

Il Document classe del pacchetto com.itextpdf.layoutè l'elemento principale durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classe PdfDocument.

Istanziare il file Document class passando l'oggetto della classe PdfDocument creato nei passaggi precedenti, come mostrato di seguito.

// Creating a Document  
Document document = new Document(pdfDoc);

Passaggio 4: creazione di un oggetto PdfCanvas

Creane uno nuovo PdfPage classe utilizzando il addNewPage() metodo del PdfDocumentclasse. Istanziare il filePdfCanvas oggetto della confezione com.itextpdf.kernel.pdf.canvas passando il PdfPage oggetto al costruttore di questa classe, come mostrato di seguito.

// Creating a new page 
PdfPage pdfPage = pdfDoc.addNewPage();           

// Creating a PdfCanvas object 
PdfCanvas canvas = new PdfCanvas(pdfPage);

Passaggio 5 Impostazione del colore

Imposta il colore del cerchio usando il setColor() metodo del Canvas classe, come mostrato di seguito.

// Setting color to the circle 
Color color = Color.GREEN; 
canvas.setColor(color, true);

Passaggio 6: disegnare il cerchio

Disegna un cerchio invocando il circle() metodo del Canvas, come mostrato di seguito.

// creating a circle 
canvas.circle(300, 400, 200);

Passaggio 7: chiusura del documento

Chiudere il documento utilizzando il file close() metodo del Document classe, come mostrato di seguito.

// Closing the document 
document.close();

Esempio

Il seguente programma Java mostra come disegnare un cerchio su un documento pdf utilizzando la libreria iText. Crea un documento PDF con il nomedrawingCircle.pdf, disegna un cerchio al suo interno e lo salva nel percorso C:/itextExamples/

Salva questo codice in un file con il nome DrawingCircle.java.

import com.itextpdf.kernel.color.Color; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfPage; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.canvas.PdfCanvas; 
import com.itextpdf.layout.Document;  

public class DrawingCircle {      
   public static void main(String args[]) throws Exception {           
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/drawingCircle.pdf";           
      PdfWriter writer = new PdfWriter(dest);            
      
      // Creating a PdfDocument object       
      PdfDocument pdfDoc = new PdfDocument(writer);

      // Creating a Document object
      Document doc = new Document(pdfDoc);
      
      // Creating a new page
      PdfPage pdfPage = pdfDoc.addNewPage();
      
      // Creating a PdfCanvas object
      PdfCanvas canvas = new PdfCanvas(pdfPage);  
      
      // Setting color to the circle
      Color color = Color.GREEN;       
      canvas.setColor(color, true);              
      
      // creating a circle
      canvas.circle(300, 400, 200);
      
      // Filling the circle       
      canvas.fill();             
      
      // Closing the document 
      doc.close();  
      
      System.out.println("Object drawn on pdf successfully");
   }     
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi.

javac DrawingCircle.java 
java DrawingCircle

Al momento dell'esecuzione, il programma precedente crea un documento PDF che mostra il seguente messaggio.

Object drawn on pdf successfully

Se verifichi il percorso specificato, puoi trovare il documento PDF creato, come mostrato di seguito.

In questo capitolo vedremo come impostare colore e carattere per il testo in un documento PDF utilizzando la libreria iText.

Impostazione del carattere del testo in un PDF

È possibile creare un documento PDF vuoto istanziando il file Documentclasse. Durante la creazione di un'istanza di questa classe, è necessario superare un filePdfDocument oggetto come parametro del suo costruttore.

Per aggiungere un paragrafo al documento, è necessario creare un'istanza del file Paragraph class e aggiungi questo oggetto al documento usando il add()metodo. È possibile impostare il colore e il carattere del testo utilizzando i metodisetFontColor() e setFont() rispettivamente.

Di seguito sono riportati i passaggi per impostare il colore e il carattere sul testo in un documento PDF.

Passaggio 1: creazione di un oggetto PdfWriter

Il PdfWriterclass rappresenta il DocWriter per un PDF. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.

Istanziare la classe PdfWriter passando un valore stringa (che rappresenta il percorso in cui è necessario creare un PDF) al suo costruttore, come mostrato di seguito.

// Creating a PdfWriter 
String dest = "C:/itextExamples/fonts.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Quando un oggetto di questo tipo viene passato a un PdfDocument (classe), ogni elemento aggiunto a questo documento verrà scritto nel file specificato.

Passaggio 2: creazione di un documento PDF

Il PdfDocumentclass è la classe che rappresenta il documento PDF in iText. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura), è necessario passare un oggetto della classePdfWriter al suo costruttore.

Istanziare la classe PdfDocument passando l'oggetto PdfWriter al suo costruttore, come mostrato di seguito.

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

Una volta creato un oggetto PdfDocument, è possibile aggiungere vari elementi come pagina, font, file allegati e gestore eventi utilizzando i rispettivi metodi forniti dalla sua classe.

Passaggio 3: creazione della classe Document

Il Document classe del pacchetto com.itextpdf.layoutè l'elemento principale durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classe PdfDocument.

Istanziare la classe Document passando l'oggetto della classe PdfDocument creato nei passaggi precedenti, come mostrato di seguito.

// Creating a Document   
Document document = new Document(pdfDoc);

Passaggio 4: creazione del testo

Crea il testo istanziando il file Text classe del pacchetto com.itextpdf.layout.element come mostrato di seguito.

// Creating text object 
Text text = new Text("Tutorialspoint");

Passaggio 5: impostazione del carattere e del colore del testo

Crea il file PdfFont oggetto utilizzando il createFont() metodo della classe PdfFontFactory del pacchetto com.itextpdf.kernel.font come mostrato di seguito

// Setting font of the text PdfFont 
font = PdfFontFactory.createFont(FontConstants.HELVETICA_BOLD);

Ora, imposta il carattere sul testo usando il setFont() metodo del Textclass a questo metodo. Passa ilPdfFont oggetto come parametro, come mostrato di seguito.

text1.setFont(font);

Per impostare il colore del testo, richiamare il setFontColor() metodo della classe Text, come mostrato di seguito.

// Setting font color 
text.setFontColor(Color.GREEN);

Passaggio 6: aggiunta di testo al paragrafo

Creare un Paragraph oggetto class e aggiungi il testo creato sopra usando il suo add() metodo, come mostrato di seguito.

// Creating Paragraph 
Paragraph paragraph = new Paragraph();  

// Adding text to the paragraph 
paragraph.add(text);

Passaggio 7: aggiunta di un paragrafo al documento

Aggiungi il paragrafo al documento usando il add() metodo del Document classe, come mostrato di seguito.

doc.add(paragraph1)

Passaggio 8: chiusura del documento

Chiudere il documento utilizzando il file close() metodo del Document classe, come mostrato di seguito.

// Closing the document 
document.close();

Esempio

Il seguente programma Java dimostra come impostare il colore e il carattere sul testo in un PDF utilizzando la libreria iText. Crea un documento PDF con il nomefonts.pdf, formatta il testo e lo salva nel percorso C:/itextExamples/

Salva questo codice in un file con il nome FormatingTheText.java.

import com.itextpdf.io.font.FontConstants; 
import com.itextpdf.kernel.color.Color; 
import com.itextpdf.kernel.font.PdfFontFactory; 
import com.itextpdf.kernel.font.PdfFont; 
import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter; 

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Paragraph; 
import com.itextpdf.layout.element.Text;  

public class FormatingTheText {     
   public static void main(String args[]) throws Exception {        
      // Creating a PdfWriter object   
      String dest = "C:/itextExamples/fonts.pdf";   
      PdfWriter writer = new PdfWriter(dest);             
   
      // Creating a PdfDocument object      
      PdfDocument pdf = new PdfDocument(writer);                   
   
      // Creating a Document object       
      Document doc = new Document(pdf);
   
      // Creating text object       
      Text text1 = new Text("Tutorialspoint");              
   
      // Setting font of the text       
      PdfFont font = PdfFontFactory.createFont(FontConstants.HELVETICA_BOLD);       
      text1.setFont(font);                 
   
      // Setting font color
      text1.setFontColor(Color.GREEN);
   
      // Creating text object
      Text text2 = new Text("Simply Easy Learning");
      text2.setFont(PdfFontFactory.createFont(FontConstants.HELVETICA));         
      
      // Setting font color
      text2.setFontColor(Color.BLUE);
      
      // Creating Paragraph
      Paragraph paragraph1 = new Paragraph();
      
      // Adding text1 to the paragraph
      paragraph1.add(text1);
      paragraph1.add(text2);
      
      // Adding paragraphs to the document
      doc.add(paragraph1);
      doc.close();       
      
      System.out.println("Text added to pdf ..");   
   }     
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi:

javac FormatingTheText.java 
java FormatingTheText

Al momento dell'esecuzione, il programma precedente crea un documento PDF che mostra il seguente messaggio.

Text added to pdf ..

Se verifichi il percorso specificato, puoi trovare il documento PDF creato, come mostrato di seguito.

In questo capitolo vedremo come ridimensionare un'immagine su un documento PDF utilizzando la libreria iText.

Restringere il contenuto in un PDF

Di seguito sono riportati i passaggi per ridurre il contenuto di una pagina PDF utilizzando la libreria iText.

Passaggio 1: creazione di un oggetto PdfWriter e PdfReader

Il PdfWriterclass rappresenta il DocWriter per un PDF. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Il costruttore di questa classe accetta una stringa, che rappresenta il percorso del file in cui deve essere creato il PDF.

Istanziare la classe PdfWriter passando un valore stringa (che rappresenta il percorso in cui è necessario creare un PDF) al suo costruttore, come mostrato di seguito.

// Creating a PdfWriter object 
String dest = "C:/itextExamples/shrinking.pdf"; 
PdfWriter writer = new PdfWriter(dest);

Per leggere i dati da un PDF esistente, creare un file PdfReader oggetto come mostrato di seguito.

// Creating a PdfReader 
String src = "C:/itextExamples/pdfWithImage.pdf"; 
PdfReader reader = new PdfReader(src);

Passaggio 2: creazione di uno o più oggetti PdfDocument

Il PdfDocumentclass è la classe che rappresenta il documento PDF in iText. Questa classe appartiene al pacchettocom.itextpdf.kernel.pdf. Per istanziare questa classe (in modalità di scrittura), è necessario passare un oggetto della classePdfWriter al suo costruttore.

Crea documenti PDF di origine e di destinazione passando il file PdfWriter e PdfReader oggetti ai costruttori, come mostrato di seguito.

// Creating a PdfDocument objects 
PdfDocument destpdf = new PdfDocument(writer);         
PdfDocument srcPdf = new PdfDocument(reader);

Passaggio 3: apertura di una pagina dal PDF esistente

Ottieni una pagina dal PDF di origine utilizzando il file getPage() metodo del PdfPageclasse. Usando questo oggetto, ottieni le dimensioni della pagina del documento di origine, come mostrato di seguito.

// Opening a page from the existing PDF 
PdfPage origPage = srcPdf.getPage(1);       

// Getting the page size 
Rectangle orig = origPage.getPageSizeWithRotation();

Passaggio 4: ridurre il contenuto del pdf di origine

Usando il getScaleInstance() metodo del AffineTransform class, riduce il contenuto di una pagina del documento di origine, come mostrato di seguito.

// Shrink original page content using transformation matrix 
AffineTransform transformationMatrix = AffineTransform.getScaleInstance(    
   page.getPageSize().getWidth()/ orig.getWidth()/2,    
   page.getPageSize().getHeight()/ orig.getHeight()/2);

Passaggio 5: copia della pagina

Concatena il file affine transform matrix, creato nel passaggio precedente, alla matrice del file canvas oggetto del documento PDF di destinazione, come mostrato di seguito.

// Concatenating the affine transform matrix to the current matrix 
PdfCanvas canvas = new PdfCanvas(page);       
canvas.concatMatrix(transformationMatrix);

Ora aggiungi la copia della pagina al file canvas oggetto del PDF di destinazione nel documento di origine, come mostrato di seguito.

// Add the object to the canvas 
PdfFormXObject pageCopy = origPage.copyAsFormXObject(destpdf); 
canvas.addXObject(pageCopy, 0, 0);

Passaggio 6: creazione dell'oggetto Documento

Il Document classe del pacchetto com.itextpdf.layoutè l'elemento principale durante la creazione di un PDF autosufficiente. Uno dei costruttori di questa classe accetta un oggetto della classe PdfDocument.

Istanziare il file Document class passando l'oggetto della classe PdfDocument, come mostrato di seguito.

// Creating a Document   
Document document = new Document(destpdf);

Passaggio 7: chiusura del documento

Chiudere il documento utilizzando il file close() metodo del Document classe, come mostrato di seguito.

// Closing the document 
document.close();

Esempio

Il seguente programma Java dimostra come ridurre il contenuto di una pagina PDF utilizzando la libreria iText. Crea un documento PDF con nomeshrinkingPDF.pdf, riduce l'immagine nel pdf e la salva nel percorso C:/itextExamples/

Salva questo codice in un file con nome ShrinkingPDF.java.

import com.itextpdf.kernel.geom.AffineTransform; 
import com.itextpdf.kernel.geom.Rectangle; 

import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage; 
import com.itextpdf.kernel.pdf.PdfReader; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.canvas.PdfCanvas; 

import com.itextpdf.kernel.pdf.xobject.PdfFormXObject; 
import com.itextpdf.layout.Document;  

public class ShrinkPDF {    
   public static void main(String args[]) throws Exception {
      // Creating a PdfWriter object
      String dest = "C:/itextExamples/shrinking.pdf";
      PdfWriter writer = new PdfWriter(dest);
      
      // Creating a PdfReader
      String src = "C:/itextExamples/pdfWithImage.pdf";
      PdfReader reader = new PdfReader(src);
      
      // Creating a PdfDocument objects
      PdfDocument destpdf = new PdfDocument(writer);
      PdfDocument srcPdf = new PdfDocument(reader);
         
      // Opening a page from the existing PDF 
      PdfPage origPage = srcPdf.getPage(1);
         
      // Getting the page size
      Rectangle orig = origPage.getPageSizeWithRotation();
         
      // Adding a page to destination Pdf
      PdfPage page = destpdf.addNewPage();
         
      // Scaling the image in a Pdf page     
      AffineTransform transformationMatrix = AffineTransform.getScaleInstance(
         page.getPageSize().getWidth()/orig.getWidth()/2,
         page.getPageSize().getHeight()/ orig.getHeight()/2);
      
      // Shrink original page content using transformation matrix
      PdfCanvas canvas = new PdfCanvas(page);
      canvas.concatMatrix(transformationMatrix);
      
      // Add the object to the canvas
      PdfFormXObject pageCopy = origPage.copyAsFormXObject(destpdf);
      canvas.addXObject(pageCopy, 0, 0);
      
      // Creating a Document object
      Document doc = new Document(destpdf);
      
      // Closing the document
      doc.close();
      
      System.out.println("Table created successfully..");
   }
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi:

javac ShrinkingPDF.java 
java ShrinkingPDF

Al momento dell'esecuzione, il programma di cui sopra crea un documento PDF, visualizzando il seguente messaggio.

Table created successfully..

Se verifichi il percorso specificato, puoi trovare il documento PDF creato come mostrato di seguito.

Il seguente programma Java dimostra come affiancare il contenuto di una pagina PDF a pagine diverse utilizzando la libreria iText. Crea un documento PDF con il nometilingPdfPages.pdf e lo salva nel percorso C:/itextExamples/.

Salva questo codice in un file con il nome TilingPDFPages.java.

import com.itextpdf.kernel.geom.AffineTransform; 
import com.itextpdf.kernel.geom.PageSize; 
import com.itextpdf.kernel.geom.Rectangle; 

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfPage; 
import com.itextpdf.kernel.pdf.PdfReader; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.canvas.PdfCanvas; 
import com.itextpdf.kernel.pdf.xobject.PdfFormXObject;  

public class TilingPDFPages {      
   public static void main(String args[]) throws Exception {             
      // Creating a PdfWriter object       
      String dest = "C:/itextExamples/tilingPdfPages.pdf";       
      PdfWriter writer = new PdfWriter(dest);               
      
      // Creating a PdfReader       
      String src = "C:/itextExamples/pdfWithImage.pdf";       
      PdfReader reader = new PdfReader(src);        
      
      // Creating a PdfDocument objects       
      PdfDocument destpdf = new PdfDocument(writer);               
      PdfDocument srcPdf = new PdfDocument(reader);               
      
      // Opening a page from the existing PDF       
      PdfPage origPage = srcPdf.getPage(1);               
      
      // Getting the page size       
      Rectangle orig = origPage.getPageSizeWithRotation();    
      
      // Getting the size of the page       
      PdfFormXObject pageCopy = origPage.copyAsFormXObject(destpdf);  
      
      // Tile size 
      Rectangle tileSize = PageSize.A4.rotate();       
      AffineTransform transformationMatrix = 
         AffineTransform.getScaleInstance(tileSize.getWidth() / orig.getWidth() * 
         2f, tileSize.getHeight() / orig.getHeight() * 2f);              
      
      // The first tile       
      PdfPage page = 
      destpdf.addNewPage(PageSize.A4.rotate());       
      
      PdfCanvas canvas = new PdfCanvas(page);       
      canvas.concatMatrix(transformationMatrix);      
      canvas.addXObject(pageCopy, 0, -orig.getHeight() / 2f);              
      
      // The second tile       
      page = destpdf.addNewPage(PageSize.A4.rotate());       
      canvas = new PdfCanvas(page);       
      canvas.concatMatrix(transformationMatrix);        
      canvas.addXObject(pageCopy, -orig.getWidth() / 2f, -orig.getHeight() / 2f);
      
      // The third tile
      page = destpdf.addNewPage(PageSize.A4.rotate());
      canvas = new PdfCanvas(page);
      canvas.concatMatrix(transformationMatrix);
      canvas.addXObject(pageCopy, 0, 0);    
      
      // The fourth tile
      page = destpdf.addNewPage(PageSize.A4.rotate());
      canvas = new PdfCanvas(page);
      canvas.concatMatrix(transformationMatrix);
      canvas.addXObject(pageCopy, -orig.getWidth() / 2f, 0);
      
      // closing the documents
      destpdf.close();
      srcPdf.close();
      
      System.out.println("PDF created successfully..");
   }
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi:

javac TilingPDFPages.java 
java TilingPDFPages

Al momento dell'esecuzione, il programma di cui sopra crea un documento PDF, visualizzando il seguente messaggio.

PDF created successfully..

Se verifichi il percorso specificato, puoi trovare il documento PDF creato, come mostrato di seguito -

Il seguente programma Java dimostra come eseguire N su una pagina PDF utilizzando la libreria iText. Crea un documento PDF con il nomenUppingPDF.pdf e lo salva nel percorso C:/itextExamples/

Salva questo codice in un file con il nome NUppingPDF.java.

import com.itextpdf.kernel.geom.AffineTransform; 
import com.itextpdf.kernel.geom.PageSize; 
import com.itextpdf.kernel.geom.Rectangle; 

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfPage; 
import com.itextpdf.kernel.pdf.PdfReader; 
import com.itextpdf.kernel.pdf.PdfWriter; 
import com.itextpdf.kernel.pdf.canvas.PdfCanvas; 
import com.itextpdf.kernel.pdf.xobject.PdfFormXObject;  
   
public class NUppingPDF {    
   public static void main(String args[]) throws Exception {       
      // Creating a PdfWriter object       
      String dest = "C:/itextExamples/nUppingPDF.pdf";       
      PdfWriter writer = new PdfWriter(dest);                
      
      // Creating a PdfReader       
      String src = "C:/itextExamples/pdfWithImage.pdf";       
      PdfReader reader = new PdfReader(src);        
         
      // Creating a PdfDocument objects       
      PdfDocument destpdf = new PdfDocument(writer);               
      PdfDocument srcPdf = new PdfDocument(reader);                
      
      // Opening a page from the existing PDF       
      PdfPage origPage = srcPdf.getPage(1);       
      Rectangle orig = origPage.getPageSize();       
      PdfFormXObject pageCopy = origPage.copyAsFormXObject(destpdf);              
      
      // N-up page       
      PageSize nUpPageSize = PageSize.A4.rotate();       
      PdfPage page = destpdf.addNewPage(nUpPageSize);       
      PdfCanvas canvas = new PdfCanvas(page);              
      
      // Scale page       
      AffineTransform transformationMatrix = AffineTransform.getScaleInstance( 
         nUpPageSize.getWidth() / orig.getWidth() / 
         2f, nUpPageSize.getHeight() / orig.getHeight() / 2f);       
      canvas.concatMatrix(transformationMatrix);              
      
      // Add pages to N-up page       
      canvas.addXObject(pageCopy, 0, orig.getHeight());       
      canvas.addXObject(pageCopy, orig.getWidth(), orig.getHeight());       
      canvas.addXObject(pageCopy, 0, 0);       
      canvas.addXObject(pageCopy, orig.getWidth(), 0);              
      
      // closing the documents       
      destpdf.close();       
      srcPdf.close();              
      
      System.out.println("PDF created successfully..");   
   } 
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi:

javac NUppingPDF.java 
java NUppingPDF

Al momento dell'esecuzione, il programma precedente crea un documento PDF che mostra il seguente messaggio.

PDF created successfully..

Se verifichi il percorso specificato, puoi trovare il documento PDF creato, come mostrato di seguito.