Agregar imágenes a un documento de Word usando Java

Java permite agregar imágenes a documentos de Word utilizando el método addPicture() de la clase XWPFRun proporcionada por el paquete Apache POI . Apache POI es una API popular desarrollada y mantenida por Apache Software Foundation. Proporciona varias clases y métodos para realizar diferentes operaciones de archivos en archivos de Microsoft Office usando Java. Para adjuntar una imagen a un documento de Word, la necesidad básica es importar la siguiente biblioteca de Apache.

poi-ooxml.jar

Método:

  • addPicture(): ayuda a adjuntar la imagen al archivo general. Se define de la siguiente manera:

Sintaxis:

run.addPicture(java.io.InputStream imageData,int imageType,java.lang.String imageFileName,int ancho,int altura)

Parámetros:

  • imageData: los datos de imagen sin procesar
  • imageType: el tipo de la imagen, por ejemplo, XWPFDocument.PICTURE_TYPE_JPEG
  • imageFileName: Nombre del archivo de imagen
  • ancho: ancho en EMU
  • altura: altura en EMU 

Acercarse:

  1. Cree un documento en blanco usando XWPFDocument del paquete Apache POI.
  2. Cree un párrafo utilizando el método createParagraph() del objeto XWPFParagraph .
  3. Cree FileOutputStream y FileInputStream de Word e Image respectivamente.
  4. Cree el objeto XWPFRun y ​​agregue la imagen usando el método addPicture().

Implementación:

  • Paso 1: Crear un documento en blanco
  • Paso 2: crear un párrafo
  • Paso 3: crear un flujo de salida de archivo de un documento de Word en la ubicación requerida
  • Paso 4: crear un flujo de entrada de archivos de la imagen especificando su ruta
  • Paso 5: Recuperar el nombre del archivo de imagen y el tipo de imagen
  • Paso 6: Establecer el ancho y el alto de la imagen en píxeles
  • Paso 7: Agregar la imagen usando el método addPicture() y escribir en el documento
  • Paso 8: Cerrar las conexiones

Imagen de entrada de muestra:  antes de la implementación 

Ejemplo:

Java

// Java program to Demonstrate Adding a jpg image
// To a Word Document
  
// Importing Input output package for basic file handling
import java.io.*;
import org.apache.poi.util.Units;
// Importing Apache POI package
import org.apache.poi.xwpf.usermodel.*;
  
// Main class
// To add image into a word document
public 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();
    }
}

Producción:

Publicación traducida automáticamente

Artículo escrito por akankshapatro y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *