To insert an image in a PDF using Java can be done by using a library called iText. iText is a Java library originally created by Bruno Lowagie which allows creating PDF, read PDF, and manipulate them.
Libraries required :
- iText
- slf4j (Logging Library)
Download the iText jar files directly from here & download the slf4j jar file directly from here. To use the libraries add the jar files to the classpath of the system
Approach:
- Get the current working directory of the running java program to create the PDF file in the same location
- Create a PdfWriter object (from itextpdf library) which writes the PDF file to the given path
- Create an empty PdfDocument object
- Create Image object from the image on disk
- Add Image to the Document
Implementation:
Java
import java.io.*;
// importing itext library packages import com.itextpdf.io.image.*;
import com.itextpdf.kernel.pdf.*;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Image;
public class InsertImagePDF {
public static void main(String[] args)
throws IOException
{
String currDir = System.getProperty( "user.dir" );
// Getting path of current working directory
// to create the pdf file in the same directory of
// the running java program
String pdfPath = currDir + "/InsertImage.pdf" ;
// Creating path for the new pdf file
PdfWriter writer = new PdfWriter(pdfPath);
// Creating PdfWriter object to write pdf file to
// the path
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a PdfDocument object
Document doc = new Document(pdfDoc);
// Creating a Document object
ImageData imageData = ImageDataFactory.create(
currDir + "/image.jpg" );
// Creating imagedata from image on disk(from given
// path) using ImageData object
Image img = new Image(imageData);
// Creating Image object from the imagedata
doc.add(img);
// Adding Image to the empty document
doc.close();
// Closing the document
System.out.println(
"Image added successfully and PDF file created!" );
}
} |
After execution of the program:
Article Tags :
Recommended Articles