java想要对已有word文档追加图片,应该怎么做?
发布网友
我来回答
共2个回答
热心网友
试试这个代码,需要添加spire.doc jar依赖
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.Section;
import com.spire.doc.documents.*;
import com.spire.doc.fields.DocPicture;
public class InsertImage {
public static void main(String[] args) {
//实例化Document对象
Document doc = new Document();
//加载文档
doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\test.docx");
//获取第一个section
Section section = doc.getSections().get(0);
//添加一个段落
Paragraph para = section.addParagraph();
//添加图片到段落
DocPicture picture = para.appendPicture("C:\\Users\\Administrator\\Desktop\\Cartoon.png");
//设置文字环绕方式(居于文字上方)
picture.setTextWrappingStyle(TextWrappingStyle.In_Front_Of_Text);
//指定图片的相对位置
picture.setHorizontalOrigin(HorizontalOrigin.Page);
picture.setHorizontalPosition(250f);
picture.setVerticalOrigin(VerticalOrigin.Top_Margin_Area);
picture.setVerticalPosition(150f);
//设置图片大小
picture.setWidth(80f);
picture.setHeight(80f);
//保存到文档
doc.saveToFile("output/InsertImage.docx", FileFormat.Docx);
}
}
生成的Word:
热心网友
以前做过其他office的没做过微软的,不过大同小异
这个你就需要在java中获取到word的某种对象,方法有很多,但是要看你用什么方式调用的office了,如果是某个牌子的中间件,那就用那个中间件的二次开发文档里面应该就有提到这些方法,如果是第三方的jar包,应该也不麻烦,通过jar包中的方法,可能要有一个word的实例创建的过程吧,然后获取到range或者textrange等这些对象(应该是这俩对象……)通过这对象然后找到插入图片的方法,然后传入位置参数(可能是两个数用逗号隔开)