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.