java-doc 插入图像
java代码
public class User {
private String name;
private String dept;
private String address;
private ByteArrayImageProvider img;
public ByteArrayImageProvider getImg() {
return img;
}
public void setImg(ByteArrayImageProvider img) {
this.img = img;
}
public User(String name, String dept, String address, ByteArrayImageProvider img) {
this.name = name;
this.dept = dept;
this.address = address;
this.img = img;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
==========
//实现类
public static void createXdocreportRe(HttpServletResponse response) throws IOException {
InputStream inputStream = null;
FileOutputStream outputStream = new FileOutputStream("warning_task.docx");
try {
//读取取resource目录下的模板
inputStream = WordUtil.class.getClassLoader().getResourceAsStream("summary.docx");
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(inputStream, TemplateEngineKind.Freemarker);
//2.设置填充字段、填充类以及是否为list。
FieldsMetadata fieldsMetadata = report.createFieldsMetadata();
// 此次的img 要与书签名称对应
fieldsMetadata.addFieldAsImage("img", "user.img", NullImageBehaviour.RemoveImageTemplate);
IContext context = report.createContext();
// 创建内容-text为模版中对应都变量名称
String content = "<p>我在这里放了一段富文本</p>" +
"<p>我准备测试富文本的处理</p>";
content = HtmlUtils.htmlUnescape(content);
context.put("name", "年终总结大会");
context.put("time", "2021年3月26日");
context.put("place", "线上");
context.put("sponsor", "张三");
context.put("content", content);
InputStream p1 = new FileInputStream(new File("C:\\Users\\DELL\\img\\1.jpg"));
//context.put("img", p1);
InputStream p2 = new FileInputStream(new File("C:\\Users\\DELL\\img\\2.jpeg"));
User u1=new User("张三", "组织部", "广州天河",new ByteArrayImageProvider(p1));
User u2=new User("李四", "宣传部", "北京海淀",new ByteArrayImageProvider(p2));
List<User> users = new ArrayList<>();
users.add(u1);
users.add(u2);
context.put("userList", users);
//fieldsMetadata.load("userList",User.class,true);
// 生成文件
report.setFieldsMetadata(fieldsMetadata);
report.process(context, outputStream);
inputStream.close();
outputStream.close();
} catch (Exception e) {
log.info("生成纪要文件发生异常:<{}>", e.getMessage());
}
}
=====doc 模版
需要在 图片位置 插入一张图像,然后 再插入 书签



浙公网安备 33010602011771号