使用Java将图像添加到 Word 文档
Java可以使用Apache POI 包提供的XWPFRun 类的addPicture()方法将图像添加到Word 文档中。 Apache POI 是由 Apache 软件基金会开发和维护的流行 API。它提供了几个类和方法来使用Java对 Microsoft Office 文件执行不同的文件操作。为了将图像附加到word文档,基本的必要是导入Apache的以下库。
poi-ooxml.jar
方法:
- addPicture():帮助将图像附加到整个文件。它的定义如下:
句法:
run.addPicture(java.io.InputStream imageData,int imageType,java.lang.String imageFileName,int width,int height)
参数:
- imageData:原始图片数据
- imageType:图片的类型,例如 XWPFDocument.PICTURE_TYPE_JPEG
- imageFileName:图片文件名
- 宽度:动车组中的宽度
- 高度:动车组高度
方法:
- 使用 Apache POI 包的 XWPFDocument 创建一个空白文档。
- 使用 XWPFParagraph 对象的 createParagraph() 方法创建一个段落。
- 分别创建 Word 和 Image 的 FileOutputStream 和 FileInputStream。
- 创建 XWPFRun 对象并使用 addPicture() 方法添加图片。
执行:
- 第 1 步:创建空白文档
- 第 2 步:创建段落
- 第三步:在需要的位置创建word文档的文件输出流
- 第 4 步:通过指定其路径创建图像的文件输入流
- 步骤 5:检索图像文件名和图像类型
- 第 6 步:以像素为单位设置图像的宽度和高度
- 第七步:使用addPicture()方法添加图片并写入文档
- 步骤 8:关闭连接
示例输入图像:实施前
例子:
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();
}
}
输出: