首页 > 其他分享 >docx替换word属性打勾

docx替换word属性打勾

时间:2023-01-04 13:00:11浏览次数:36  
标签:docx word 打勾 Style TextRenderData put new datas 14

原文链接:https://blog.csdn.net/qq_32793985/article/details/115867844

之前写过一个POI 依据word模板 替换 ${xxx}属性 demo,正式上项目中,还有一些不足,比如说表格/图片/复选框等… 以poi的方式扩展起来很麻烦,还要整合/抽离一些方法,编码量太过于复杂。

由此采用新的方式去实现 POI -TL

官网:Poi-tl Documentation

 

 

 

使用

maven

<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
<version>1.9.1</version>
</dependency>
1
2
3
4
5
Gradle

compile group: 'com.deepoove', name: 'poi-tl', version: '1.9.1'
1
使用:

模板样式:


效果:

若插入图片,则模板里应为 :${@urlImg}

@Test
public void test() throws Exception {
Map<String, Object> datas = new HashMap<>();
datas.put("A", "北京盛世科技有限公司");
datas.put("B", "北京科技有限公司");
datas.put("C", "12342213391139435111");
datas.put("D", "201809823481");
datas.put("E","华东");
datas.put("F","北京海淀地块1");
datas.put("G","A");
datas.put("H","8");
datas.put("I","1013");
datas.put("J","李青书");
datas.put("K","上海科技集团");
datas.put("L","1000000000000000");
datas.put("M","2015483247238");
datas.put("N","自然人更换");
datas.put("O","测试科技公司");
// 打印成PDF时需设置,但不好使。 TextRenderData("\uF0FE",new Style("Wingdings 2",14))
datas.put("AA",new TextRenderData("R",new Style("Wingdings 2",14)));
datas.put("BB",new TextRenderData("R",new Style("Wingdings 2",14)));
datas.put("CC",new TextRenderData("R",new Style("Wingdings 2",14)));
datas.put("DD",new TextRenderData("R",new Style("Wingdings 2",14)));
datas.put("EE",new TextRenderData("R",new Style("Wingdings 2",14)));
datas.put("FF",new TextRenderData("R",new Style("Wingdings 2",14)));
datas.put("GG",new TextRenderData("R",new Style("Wingdings 2",14)));
datas.put("HH",new TextRenderData("R",new Style("Wingdings 2",14)));
datas.put("II",new TextRenderData("R",new Style("Wingdings 2",14)));
datas.put("JJ",new TextRenderData("R",new Style("Wingdings 2",14)));
datas.put("KK",new TextRenderData("□",new Style("宋体",14)));
datas.put("LL",new TextRenderData("R",new Style("Wingdings 2",14)));

// 设置年月日
datas.put("Date",DateUtils.formatDate(new Date(),"yyyy年MM月dd日"));
datas.put("UserName","姜泥");

// 图片
datas.put("urlImg", Pictures.ofUrl("http://deepoove.com/images/icecream.png", PictureType.PNG)
.size(300, 300).create());
// 通过模板文件直接获取
/* XWPFTemplate.compile("src/test/java/DocTemplate/testRenamed.docx").render(datas)
.writeToFile("src/test/java/DocTemplate/testRenamed-print.docx");*/

// 通过字节流方式
ByteArrayOutputStream bos = new ByteArrayOutputStream();
XWPFTemplate.compile("src/test/java/DocTemplate/test.docx").render(datas).writeAndClose(bos);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
当然如果有些同学更偏爱freemarker ${}的方式,poi-tl 也支持

// 官网实例
ConfigureBuilder builder = Configure.builder();
XWPFTemplate.compile("template.docx", builder.buid());
builder.buildGramer("${", "}");

// 我在项目中使用
XWPFTemplate.compile(fileInputStream, Configure.builder().buildGramer("${", "}")
.build()).render(datas).writeAndClose(bos);

标签:docx,word,打勾,Style,TextRenderData,put,new,datas,14
From: https://www.cnblogs.com/fswhq/p/16954197.html

相关文章

  • 在线编辑Word——插入公式
    在Word中可插入多种公式,用于满足于不同运算场景需求,从基本的运算符到大型的运算公式,我们可以根据文档内容的编排需要,任意插入所需公式。下面,介绍如何通过在线编辑Word的方式......
  • Java 在Word中添加数学公式(Latex/MathML)
    本文介绍通过Java程序在Word文档中添加数学公式的方法。添加时,可添加latex数学公式或者MathML数学公式。详细内容见下文。1.程序环境Word测试文档:.docx2013Wordjar包:free......
  • 在线编辑Word——插入内容控件
    内容控件是可添加和自定义的以在模板、窗体和文档中使用的单个控件。Word中支持添加多种类型的控件用于不同文档的设计需求。本文,将通过在线编辑的方式展示如何在Word中插入......
  • C# 将Word转为PDF时,设置PDF文档保护
    本文以C#代码示例展示如何将Word转为PDF时,设置PDF文档保护,可设置PDF文档打开密码保护以及权限密码保护。附VB.NET代码,有需要可供参考。程序环境:1.Word测试文档:.docx2..NetF......
  • C# 在Word中添加Latex 数学公式和符号
    本篇内容介绍使用Spire.Docfor.NET在Word中添加Latex数学公式和符号的方法。编辑代码前,将Spire.Doc.dll文件添加引用至VS程序。dll文件包可通过​​官网下载导入​​​(如......
  • Java 给Word不同页面设置不同背景
    Word文档中,可直接通过【设计】-【页面颜色】页面颜色,通过Java代码可参考如下设置方法:1.设置单一颜色背景doc.getBackground().setType(BackgroundType.Color);doc.getBackg......
  • jeecgboot项目swagger2在线接口转word
    1、先找到接口文档地址2、根据url获取接口数据  3、利用在线工具进行转换生成word 在线工具地址:在线swagger转word文档      生成的word文档如下:......
  • 最最最简单使用Docker部署Wordpress
    普通Docker部署这种方式我用过,但是总体来说是比较麻烦的。但是可以简单说一下流程,总体流程如下:安装Docker环境拉取Wordpress镜像,运行镜像拉取MySql镜像,运行镜像Wordp......
  • 新建 Microsoft Office Word 文档 来源:牛客网
    题目链接:https://ac.nowcoder.com/acm/contest/28886/1015时间限制:C/C++1秒,其他语言2秒空间限制:C/C++32768K,其他语言65536K64bitIOFormat:%lld题目描述CSL正在学习......
  • 利用Robots.txt优化你的WordPress站点,并在google上检查是否优化成功
    前言我发现我的网站在google上有很多多余的网站被搜索结果收录了,很烦人。很多建站新手对robots.txt文件的重要作用不是很清楚,利用这篇文章普及一下WordPress站点robots.txt......