Adding Images to a Word Document using Java - GeeksforGeeks

16 Sep, 2021
Java makes it possible to add images to Word documents using the addPicture() method of XWPFRun class provided by Apache POI package. Apache POI is a popular API developed and maintained by the Apache Software Foundation. It provides several classes and methods to perform different file operations on Microsoft office files using Java. In order to attach an image to a word document, the basic necessity is to import the following library of Apache.
poi-ooxml.jar
Method:
addPicture(): Helps in attaching the image to overall file. It is defined as follows:
Syntax:
run.addPicture(java.io.InputStream imageData,int imageType,java.lang.String imageFileName,int width,int height)
Parameters:
imageData: The raw picture data
imageType: The type of the picture, eg XWPFDocument.PICTURE_TYPE_JPEG
imageFileName: Name of the image file
width: width in EMUs
height: height in EMUs 
Approach:
Create a Blank document using XWPFDocument of Apache POI package.Create a paragraph using the createParagraph() method of XWPFParagraph object.Create FileOutputStream and FileInputStream of Word and Image respectively.Create XWPFRun object and add the picture using addPicture() method.
Create a Blank document using XWPFDocument of Apache POI package.
Create a paragraph using the createParagraph() method of XWPFParagraph object.
Create FileOutputStream and FileInputStream of Word and Image respectively.
Create XWPFRun object and add the picture using addPicture() method.
Implementation:
Step 1: Creating a blank document
Step 2: Creating a Paragraph
Step 3: Creating a File output stream of word document at the required location
Step 4: Creating a file input stream of the image by specifying its path
Step 5: Retrieving the image file name and image type
Step 6: Setting the width and height of the image in pixels
Step 7: Adding the picture using the addPicture() method and writing into the document
Step 8: Closing the connections
Sample input image:  Before implementation 
Example:
Java
// Java program to Demonstrate Adding a jpg image// To a Word Document  // Importing Input output package for basic file handlingimport java.io.*;import org.apache.poi.util.Units;// Importing Apache POI packageimport org.apache.poi.xwpf.usermodel.*;  // Main class// To add image into a word documentpublic class GFG {      // Main driver method    public static void main(String[] args) throws Exception    {          // Step 1: Creating a blank document        XWPFDocument document = new XWPFDocument();          // Step 2: Creating a Paragraph using        // createParagraph() method        XWPFParagraph paragraph            = document.createParagraph();        XWPFRun run = paragraph.createRun();          // Step 3: Creating a File output stream of word        // document at the required location        FileOutputStream fout = new FileOutputStream(            new File("D:\\WordFile.docx"));          // Step 4: Creating a file input stream of image by        // specifying its path        File image = new File("D:\\Images\\image.jpg");        FileInputStream imageData            = new FileInputStream(image);          // Step 5: Retrieving the image file name and image        // type        int imageType = XWPFDocument.PICTURE_TYPE_JPEG;        String imageFileName = image.getName();          // Step 6: Setting the width and height of the image        // in pixels.        int width = 450;        int height = 400;          // Step 7: Adding the picture using the addPicture()        // method and writing into the document        run.addPicture(imageData, imageType, imageFileName,                       Units.toEMU(width),                       Units.toEMU(height));        document.write(fout);          // Step 8: Closing the connections        fout.close();        document.close();    }}
Output:
Blogathon-2021
Blogathon
Java
Java Programs
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to Create a Table With Multiple Foreign Keys in SQL?
How to Import JSON Data into SQL Server?
Stratified Sampling in Pandas
SQL Query to Convert Datetime to Date
How to pass data into table from a form using React Components
Arrays in Java
Split() String method in Java with examples
For-each loop in Java
Object Oriented Programming (OOPs) Concept in Java
HashMap in Java with Examples