第一步:制作word模板

第二步:格式转换,将word另存为xml

第三步:找到图片base64,删除base64替换成占位符${image},只修改图片的,其余的不用动

第四步:加入依赖

 <dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.20</version></dependency>

第五步:代码实现:

package com.wxz;import freemarker.template.Configuration;
import freemarker.template.Template;
import sun.misc.BASE64Encoder;import java.io.*;
import java.util.HashMap;
import java.util.Map;/*** TODO** @author wxz* @date 2022/4/11 16:47*/
public class TestWord {public static void genWord(){try {Map<String,String> dataMap = new HashMap<String,String>();dataMap.put("name", "二哈");dataMap.put("sex", "女");dataMap.put("birth", "1995-12-12");dataMap.put("age", "27");dataMap.put("address", "湖北省襄阳市保康县");dataMap.put("image", getImgFileToBase64("D:\\image\\dog.png"));Configuration configuration = new Configuration();configuration.setDefaultEncoding("utf-8");//.xml 模板文件所在目录configuration.setDirectoryForTemplateLoading(new File("D:\\模板"));// 输出文档路径及名称File outFile = new File("D:\\test.doc");//以utf-8的编码读取模板文件Template t =  configuration.getTemplate("test.xml","utf-8");Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"),10240);t.process(dataMap, out);out.close();System.out.println("生成成功");}catch (Exception e){e.printStackTrace();System.out.println("生成失败");}}public static String getImgFileToBase64(String imgFile) {//将图片文件转化为字节数组字符串,并对其进行Base64编码处理InputStream inputStream = null;byte[] buffer = null;//读取图片字节数组try {inputStream = new FileInputStream(imgFile);int count = 0;while (count == 0) {count = inputStream.available();}buffer = new byte[count];inputStream.read(buffer);} catch (IOException e) {e.printStackTrace();} finally {if (inputStream != null) {try {// 关闭inputStream流inputStream.close();} catch (IOException e) {e.printStackTrace();}}}// 对字节数组Base64编码return new BASE64Encoder().encode(buffer);}public static void main(String[] args) {genWord();}}

第六步:测试

Java 用Freemarker完美导出word文档(带图片)相关推荐

  1. java 图片 word文档_【Java】用Freemarker完美导出word文档(带图片)

    Java  用Freemarker完美导出word文档(带图片) 前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. ...

  2. java freemarker word_Java 用Freemarker完美导出word文档(带图片)(示例代码)

    Java  用Freemarker完美导出word文档(带图片) 前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. ...

  3. java-制作flt模板,导出word文档带图片循环

    java-制作flt模板,导出word文档带图片循环 模板制作 制作xml 编辑xml文档 将xml模板转换为flt 编写工具类 导出word工具类 获取远程图片 使用示例 使用示例--springb ...

  4. java word导出带背景_Java 用Freemarker完美导出word文档(带图片)

    前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. 准备材料 1.word原件 2.编辑器(推荐Firstobject ...

  5. word 导出编辑ftl_Java实现用Freemarker完美导出word文档(带图片)

    前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. 准备材料 1.word原件 2.编辑器(推荐Firstobject ...

  6. spring-boot+freemarker完美导出word文档

    前言:初次接触,没来的及优化,凑合看吧. 1.pom文件添加依赖. <!-- freemarker --><dependency><groupId>org.free ...

  7. java通过freemarker导出word文档带图片并且循环

    转载请标明出处: https://blog.csdn.net/weixin_41965979/article/details/80969287 本文出自付付讶的博客 1:所需jar包:freemark ...

  8. Java使用FreeMarker自动生成Word文档(带图片和表单)

    Java使用FreeMarker自动生成Word文档(带图片和表单) 1 背景 2 目标效果 3 创建Word模板 3.1 创建模板文档 3.2 转换模板文档 3.3 处理模板文档中的占位符 3.4 ...

  9. Java使用POI实现导出Word文档

    POI官网链接:http://deepoove.com/poi-tl/(方便各位博友后期深入学习) 1.首先导入POM依赖包 <dependency><groupId>com. ...

最新文章

  1. 总结:被MySQL UTF8编码坑的惨痛教训...
  2. 教你如何保养iphone电池
  3. jquery的四层联动插件jquerySelect
  4. python语言程序设计2019版第二章课后答案-《python语言程序设计》_第二章编程题...
  5. python 获取文件列表_python获取文件列表
  6. Spring boot切换Servlet容器
  7. asp.net如何在用户关闭浏览器时执行Session_End方法
  8. angular中的href=unsafe:我该怎么摆脱你的溺爱!!
  9. C++学习笔记 简单部分
  10. Tomcat自定义部署
  11. pandas之Series()菜鸟教程
  12. php源码 拼车网顺风车_php版某拼车网源码分享 微信拼车打车约车源码 微信拼车+手机拼车+双终端+发布平台...
  13. ArcGIS中,一个点集里的点两两连线,比如有4个点,就连3+2+1=6条线
  14. 解决h5 在微信放大字体中的问题
  15. 医院信息管理系统源码 HIS系统源码
  16. 李俊的人生病毒:靠熊猫烧香成毒王,网赌7000万二进宫!
  17. Compass用法指南
  18. 2021.11.14
  19. Biostrings包测试1_2020-01-29
  20. 小米手机无法打包的解决方案

热门文章

  1. 【车载以太网】【SOME/IP】规范标准
  2. python画好看的图案-妈耶,python的散点图竟然能画这么好看!
  3. 微信小程序——分割线
  4. 企业转型升级,务必抓住“企业上云”政策红利
  5. java接口防刷_API 接口防刷
  6. 高级英语(张汉熙版)第一册学习笔记(原文及全文翻译)——8 - But What‘s a Dictionary For?(词典的用途究竟何在?)
  7. 万字长文带你玩转2020全国大学生计算机技能应用大赛—C语言模考整理解析
  8. uni-app学习笔记之判断当前用户是否拥有某角色和权限
  9. Design Compiler is not enabled Synopsys License制作
  10. Chrome浏览器设置 【显示右上角 翻译语言图标】