Java自动生成带图片、富文本、表格等的word文档

使用技术 freemark+jsoup 生成mht格式的伪word文档,已经应用项目中,确实是可行的,无论是富文本中是图片还是表格,都能在word中展现出来

使用jsoup解析富文本框,将其中的图片进行Base64位转码,

使用freemark替换模板的占位符,将变量以及图片资源放入模板中在输出文件

maven地址

org.freemarker

freemarker

2.3.23

org.jsoup

jsoup

1.10.2

制作word的freemark模板

先将wrod的格式内容定义好,如果需要插入参数的地方以${xxx}为表示,例:${product}

模板例子:

2. 将模板另存为mht格式的文件,打开该文件检查每个变量(${product})是否完整,有可能在${}中出现其他代码,需要删除。

3. 将mht文件变更文件类型,改成ftl为结尾的文件,引入到项目中

4. 修改ftl模板文件,在文件中加上图片资源占位符${imagesBase64String},${imagesXmlHrefString}

具体位置如下图所示:

5. ftl文件中由几个关键配置需要引入到代码中:

docSrcParent = word.files

docSrcLocationPrex = file:///C:/268D4AA4

nextPartId = 01D2C8DD.BC13AF60

上面三个参数,在模板文件中可以找到,需要进行配置,如果配置错误,图片文件将不会显示

下面这三个参数固定,切换模板也不会改变

shapeidPrex = _x56fe__x7247__x0020

typeid = #_x0000_t75

spidPrex = _x0000_i

6. 模板引入之后进行代码编辑

下载源码后需要进行调整下内容:

录入步骤5中的6个参数

修改freemark获取模板方式

下面这种方式能获取模板,但是在项目打包之后无法获取jar包内的文件

Configuration configuration=newConfiguration(Configuration.getVersion());

configuration.setDefaultEncoding(StandardCharsets.UTF_8.toString());

configuration.setDirectoryForTemplateLoading(newFile(templatePath));

Template template=configuration.getTemplate("xxx.ftl");

通过流的形式直接创建模板对象

Configuration configuration=newConfiguration(Configuration.getVersion());

configuration.setDefaultEncoding(StandardCharsets.UTF_8.toString());

configuration.setDirectoryForTemplateLoading(newFile(templatePath));

InputStream inputStream=newFileInputStream(newFile(templatePath+"/"+templateName));

InputStreamReader inputStreamReader=newInputStreamReader(inputStream,StandardCharsets.UTF_8);

Template template=newTemplate(templateName,inputStreamReader,configuration);

java生成word文档 图片_java根据模板生成word文档,兼容富文本、图片相关推荐

  1. java导出pdf文件并下载_java根据模板生成pdf文件并导出

    1.首先需要依赖包:itext的jar包,我是maven项目,所以附上maven依赖 [html] view plain copy com.itextpdf itextpdf 5.5.10 [html ...

  2. java freemarker 图片_java通过freemarker导出包含富文本图片的word文档

    废话不多说,进入正题! 本文重点在于:对富文本图片的导出(基础的freemarker+word模板导出这里不做详细解说哈) (ps:大神的东西太深奥~~懵逼了 一周才搞定,为了方便后来在更加简单,清晰 ...

  3. elementui图片上传php,vue+element-ui+富文本————图片上传

    最近用vue+element-ui开发一套后台管理系统,其中项目中需要用到富文本编辑器,这里总结下开发过程中遇到的坑和使用方法. 刚开始用的是vue-quill-editor结合element-ui上 ...

  4. vue+element-ui+富文本————图片上传

    最近用vue+element-ui开发一套后台管理系统,其中项目中需要用到富文本编辑器,这里总结下开发过程中遇到的坑和使用方法. 刚开始用的是vue-quill-editor结合element-ui上 ...

  5. android:获取富文本图片和使用Jsoup抓取腾讯新闻网页数据

    先看效果: 获取富文本中的图片 抓取腾讯新闻中的图片 首先引入要使用的jar包 compile 'jp.wasabeef:glide-transformations:2.0.2'compile 'or ...

  6. qq模板图片asqq_重要更新 电脑编辑规则、快速滚动、富文本图片、规则模板等十多项更新!...

    新方圆小棉袄,传说中的贴心小棉袄,宇宙无敌超级厉害. 记住我们的付费群(大佬众多):978260150,免费群:1101359539 1.方圆和海阔的规则导入和支付宝口令类似,将口令全部复制打开最新版 ...

  7. html加载富文本_富文本图片懒加载解决方案

    图片懒加载,作为性能优化的一部分,想必我们并不陌生. 在React.Vue项目中,我们都可以引入对应的NPM包处理图片懒加载,如 lazyload.react-lazyload.vue-lazyloa ...

  8. 微信小程序rich-text富文本图片自适应处理

    最近在做小程序,在处理富文本图片时没做相应处理,图片width没有自适应 简单的定义:img{max-width: 100%;}并没有生效 说明:微信小程序rich-text,对于样式定义仅支持sty ...

  9. vue+php使用七牛云存储解决富文本图片冗余问题

    解决服务器中图片冗余的方法很多,本篇介绍利用七牛云自带的api解决图片冗余问题 问题: 在前端编辑富文本上传图片时,一般有两种方式,一种是将图片在本地预览,文件则在本地缓存,一种是直接上传服务器,然后 ...

  10. 小程序富文本图片放大功能

    // 富文本图片放大 function richImg(txt) {//txt 指的是接口返回的富文本// 主要代码let imgarr = [];let regex = new RegExp(/&l ...

最新文章

  1. 智能车竞赛技术报告 | 智能车视觉 - 青岛工学院 - 青工战斗
  2. HDU 1814 Peaceful Commission
  3. Django两天搭建个人博客
  4. Redis 和 memcached 区别(二)
  5. 华为路由器isis配置实例_华为isis协议配置实例
  6. 易百教程(IT技能学习平台)
  7. 拉格朗日插值公式与mathematica程序实现
  8. kube-scheduler源码分析(三)之 scheduleOne
  9. 大数据下 移动计算 和 移动数据的一点理解
  10. 每个程序员都应该给自己写本书
  11. 苹果Mac突然没有声音,3 种方法快速解决没声音的问题
  12. Compose版来啦!仿自如裸眼3D效果
  13. vs 应用程序无法正常启动0xc000007b 可能与VS中DLL引用有关
  14. 【6.24校内test】T2 不老梦
  15. 内存取证工具Volatility学习
  16. 靠这个方法,我终于月入3万!
  17. NVDIMM原理与应用之四:NVDIMM的数据恢复、使用和监控
  18. Solana之旅1:Solana是什么
  19. 极客日报:王者荣耀道歉:因新游海报擅用原神素材;Facebook改名为Meta;Node.js v16.13.0发布
  20. 二叉树的深度和广度优先

热门文章

  1. 教大家怎么把百度网盘的分享链接共享出来
  2. 模型思维2-如何增加用户对于某个商品的购买意愿?
  3. Fences隐藏桌面图标快捷方式箭头
  4. 缠中说禅图解分析示范
  5. 国家开放大学计算机网络技术毕业设计,精编国家开放大学毕业论文:购物网站设计...
  6. ireader_使用iReader在Chrome和Firefox上获取Safari Reader
  7. 阅读器安装三方APK指导
  8. 计算机网络技术计划书,开设计算机网络技术专业项目可研计划书5喜欢就下吧(样例3)...
  9. Android基础:ViewPage2
  10. oracle mysql 中文排序规则_Oracle 对汉字的order by排序规则