1 实现方法
/**
* 往word中插入图片
* @return
*/
@SneakyThrows
@PostMapping("insertImage")
public Ret insertImage(MultipartFile imageFile){
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.writeln("Hello World!");
//插入图片保持原图尺寸
builder.insertImage(imageFile.getBytes());
builder.writeln();
builder.writeln();
//按像素插入图片
builder.insertImage(imageFile.getBytes(),ConvertUtil.pixelToPoint(100), ConvertUtil.pixelToPoint(60));
builder.writeln();
builder.writeln();
//实际导出时 可以会遇到多处地方需要导出图片 各处的图片尺寸需求不一样
//这时 最简便的就是预先处理图片尺寸 再直接插入图片(在插入时 逐个判断尺寸逻辑 再设置尺寸 这样有点麻烦 而且不利于通用方法的封装)
//这里介绍一个工具 thumbnailator 可以很方便的修改图片尺寸
try(
ByteArrayOutputStream bos = new ByteArrayOutputStream();
InputStream ins = imageFile.getInputStream();
){
Thumbnails.of(ins).forceSize(100,60).toOutputStream(bos);
builder.insertImage(bos.toByteArray());
}
doc.save("C:/Users/Administrator/Desktop/aspose/插入图片.docx", SaveFormat.DOCX);
return Ret.success();
}
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.18</version>
</dependency>
2 实现效果
