Core Java

iText Rectangle Example

In the past examples,we studied about the PDFWriter and PDFReader examples. In this example, we will demonstrate how we can create an Itext Rectangle and use it in our PDF document.
 
 
 
 
 
 
 
 
 
 

1. Setup the Project

Let’s setup the project by creating a simple Maven project and selecting the skip archetype selection. Update the contents of pom.xml with the contents of the file below:

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>ITextExample</groupId>
	<artifactId>ITextExample</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<dependencies>
		<dependency>
			<groupId>com.itextpdf</groupId>
			<artifactId>itextpdf</artifactId>
			<version>5.5.6</version>
		</dependency>
		<dependency>
			<groupId>org.bouncycastle</groupId>
			<artifactId>bcprov-jdk15on</artifactId>
			<version>1.52</version>
		</dependency>

	</dependencies>

</project>

Now that the project is setup, let’s create a Rectangle in the PDF Document using the IText library.

CreateRectangle.java

package com.jcg.examples;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;

import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfWriter;

public class CreateRectangle
{
		public static void main(String[] args)
		{
				try
				{
						Document document = new Document();
						PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("Rectagled.pdf"));
						document.open();
 
						PdfContentByte contentByte = writer.getDirectContent();
						Rectangle rectangle = new Rectangle(36, 36, 559, 806);
						rectangle.setBorder(Rectangle.BOX);
						contentByte.setColorStroke(BaseColor.BLACK);
						rectangle.setBorderWidth(2);
						contentByte.rectangle(rectangle);
						document.close();
				}
				catch (FileNotFoundException e)
				{
						e.printStackTrace();
				}
				catch (DocumentException e)
				{
					e.printStackTrace();
				}
		} 
}

We create an instance of com.itextpdf.text.Document class. Then we create a reference to the underlying com.itextpdf.text.pdf.PdfContentByte object and create a com.itextpdf.text.Rectangle Object on it. The Rectangle element can be customized like setting its border color, filing it with a particular color, adjusting text to fit inside the rectangle. In the example above, I have set the border Color to Black. We can create specific colors by using the com.itextpdf.text.BaseColor class and passing the specified values R-G-B color values.

Here’s how the Rectangle looks like in a document.

Fig 1 : Rectangle
Fig 1 : Rectangle

Here’s another code snippet that fills up the rectangle with the specified color :

package com.jcg.examples;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;

import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfWriter;

public class FillRectangle
{
		public static void main(String[] args)
		{
				try
				{
						Document document = new Document();
						PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("Rectangled.pdf"));
						document.open();
						PdfContentByte contentByte = writer.getDirectContent();
						contentByte.rectangle(186, 186, 159, 150);
						contentByte.setColorFill(BaseColor.CYAN);
						contentByte.fill();
						document.close();
				}
				catch (FileNotFoundException e)
				{
						e.printStackTrace();
				}
				catch (DocumentException e)
				{
						e.printStackTrace();
				}
		}
}

To fill a rectangle we use the PdfContentByte#setColorFill method to set the Color to fill the background and then call the PdfContentByte#fill() method to actually fill up the method.

Here’s how the output looks like :

Fig 2 : ColorFill Rectangle
Fig 2 : ColorFill Rectangle

Similarly, we can use the com.itextpdf.text.pdf.ColumnText#showTextAligned method to place fonts and other PDF Objects into the Rectangle.

2. Download the Source Code

Here we studied how we can create an IText Rectangle and modify it to fit our requirements for the document.

Download
You can download the source code of this example here: ItextRectangleExample.zip

Chandan Singh

Chandan holds a degree in Computer Engineering and is a passionate software programmer. He has good experience in Java/J2EE Web-Application development for Banking and E-Commerce Domains.
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments
Back to top button