java通过poi-tl生成word

我看公司之前做电子合同,使用TIBCO jaspersoft做的报表模板,如果是给自己公司开发或者给客户做项目,这个也没有什么,因为反正模板是固定的,一次性开发,不用担心后续的问题。即使后期有调整,改一下报表,重新打包就好了。

但是如果做像岁月会计云这样的多用户平台,这种办法就显得笨了。总不能搞一个开发,都是按照单租户的模式。所以考虑通用性,在网上找到了poi-tl,这个大神的大作。我使用的版本是1.10.6,因为poi-tlpoi的版本有要求。而easyexcel当前版本到3.3.3,使用的poi版本是4,1,2,因此poi-tl不能使用最新的版本。

xml 复制代码
<dependency>
     <groupId>com.deepoove</groupId>
     <artifactId>poi-tl</artifactId>
     <version>1.10.6</version>
 </dependency>

模板中按照官网参数来配置,这里就不说了,现在的问题是图片如何处理。如下面,怎么在乙方的位置,将公司的公章盖上去。

官方介绍的是微软office的说明,但我的电脑上用的wps,怎么办呢?

当模板采用下面{``{@var}}

java 复制代码
Map<String, Object> datas = new HashMap<String, Object>() {
            {
                put("qdrq_n", "2024");
                put("qdrq_y", "3");
                put("qdrq_r", "8");
                put("var", Pictures.ofLocal("src/test/resources/lu.png").size(120, 120).create());
            }
        };
        XWPFTemplate.compile("src/test/resources/certificate/销售一部合同模板.docx").render(datas)
                .writeToFile("target/销售一部合同模板.docx");

运行可以看到的效果如下图,这个效果并不好,最好还是图片在文字上面,因为那样操作,图片占了位置。

通过office打开模板,确实可以看到,office中选中图片,有一个"替换文字功能",然后在"替换文字"中写上变量即可。

wps word怎么都没看到这个功能在哪里?气人。

相关推荐
青春易逝丶11 分钟前
Maven
java·maven
吠品15 分钟前
纯HTML+ECharts构建交互式数据看板:实现思路与踩坑记录
java·服务器·数据库
盖伦发发33 分钟前
Redis 核心教学: 数据结构, 缓存设计, 分布式锁
java·redis·后端·软件工程
卷毛的技术笔记35 分钟前
RocketMQ事务消息:我把分布式事务这层窗户纸捅破了
java·分布式·后端·java-rocketmq
yxlalm1 小时前
零基础快速上手Trae创建Java项目
java·人工智能
ly76891 小时前
磁盘 I/O 延迟突增:用 iostat、blktrace 与火焰图定位到具体调用栈
java·linux·前端·数据库·iostat·磁盘 i/o·blktrace
泡海椒1 小时前
jquick-pdf 核心原理解析:基于 HTML 模板动态渲染 PDF 的实现逻辑
java·开发语言·pdf
Bs_MoneyMagnet1 小时前
基于springboot+vue的图书馆预约系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·毕业设计·图书管理系统·计算机毕业设计
小蒜学长1 小时前
基于小程序的绘画作品创作与分享社区系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·绘画作品·创作分享社区
金玉满堂@bj1 小时前
# Java文件打包成可执行JAR包(两种方式:原生javac\+jar命令 / Maven)
java