首先需要引入俩东西
<repositories><repository><id>com.e-iceblue</id><name>e-iceblue</name><url>https://repo.e-iceblue.com/nexus/content/groups/public/</url></repository>
<dependency><groupId>e-iceblue</groupId><artifactId>spire.doc.free</artifactId><version>5.2.0</version></dependency>
然后就是代码了:
首先是插入一个图:
package org.springblade.common.tool;import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.Section;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.documents.TextWrappingStyle;
import com.spire.doc.fields.DocPicture;public class InsertImageIntoWord {public static void main(String[] args) throws Exception {//创建一个Document对象用来加载示例文档Document doc = new Document();doc.loadFromFile("D:\\无用\\test.docx");//创建一个DocPicture对象用于加载要加载的图片DocPicture picture = new DocPicture(doc);picture.loadImage("D:\\无用\\image.jpg");//自定义图片的尺寸大小picture.setWidth(150);picture.setHeight(100);//将图片的文本环绕方式设置为Tightpicture.setTextWrappingStyle( TextWrappingStyle.Behind);// 获取第二页的段落Section section = doc.getSections().get(0); // 第二页的索引为 1Paragraph paragraph = section.getParagraphs().get(18); // 可根据需要选择第二页的哪个段落// 将图片插入到指定段落paragraph.getChildObjects().insert(0, picture);// 自定义图片插入的位置 // 设置图片的水平位置为距离页面左侧 55 磅的位置picture.setHorizontalPosition(55.0F);
// 设置图片的垂直位置为距离页面顶部 10 磅的位置picture.setVerticalPosition(10.0F);//保存输出文档doc.saveToFile("D:\\无用\\test3.docx", FileFormat.Docx);}}
其次是插入多张图(拿第一个代码改的)
package org.springblade.common.tool;import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.DocPicture;public class InsertMultiImageIntoWord {public static void main(String[] args) throws Exception {// 加载文档Document doc = new Document();doc.loadFromFile("D:\\无用\\test.docx");String picPath = "D:\\无用\\image.jpg";// 创建 DocPicture 对象并加载图片DocPicture picture = new DocPicture(doc);picture.loadImage("D:\\无用\\image.jpg");picture.setWidth(150);picture.setHeight(100);//将图片的文本环绕方式设置为Tightpicture.setTextWrappingStyle( TextWrappingStyle.Behind);// 获取第22、44、66、88段落并插入图片insertPictureInParagraph(doc, picPath, 22);insertPictureInParagraph(doc, picPath, 44);insertPictureInParagraph(doc, picPath, 66);insertPictureInParagraph(doc, picPath, 88);// 保存文档doc.saveToFile("D:\\无用\\test2.docx", FileFormat.Docx);}// 在指定段落中插入图片的方法private static void insertPictureInParagraph(Document doc, String picPath, int paragraphIndex) {Section section = doc.getSections().get(0);Paragraph paragraph = section.getParagraphs().get(paragraphIndex);DocPicture newPicture = new DocPicture(doc);newPicture.loadImage(picPath);
// newPicture.setWidth(picture.getWidth());
// newPicture.setHeight(picture.getHeight());paragraph.getChildObjects().insert(0, newPicture);//将图片的文本环绕方式设置为TightnewPicture.setTextWrappingStyle( TextWrappingStyle.Behind);newPicture.setHorizontalPosition(0.0F);newPicture.setVerticalPosition(10.0F);}
}