iText - Creating a PDF Document



Let us now understand how to create a PDF document using the iText library.

Creating an Empty PDF Document

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.

Following are the steps to create an empty PDF document.

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/sample.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: Adding an empty page

The addNewPage() method of the PdfDocument class is used to create an empty page in the PDF document.

Add an empty page to the PDF document created in the previous step as shown below.

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

Step 4: Creating a 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 5: Closing the Document

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

// Closing the document 
document.close();

Example

Following is the Java program which demonstrates the creation of a PDF Document. It creates a PDF document with the name sample.pdf, adds an empty page to it, and saves it in the path C:/itextExamples/

Save this code in a file with the name 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");    
   } 
} 

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

javac create_PDF.java 
java create_PDF

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

PDF created

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

iText Example

Since this is an empty document, if you try to open this document, it will display an error message, as shown in the following screenshot.

Sample
Advertisements