【JAVA poi-tl-ext 富文本转word】
富文本转word
- 环境
- 使用poi-tl-ext的原因
- 富文本转word代码
环境
- jdk 1.8
<dependency><groupId>io.github.draco1023</groupId><artifactId>poi-tl-ext</artifactId><version>0.4.16</version>
</dependency>
- poi-tl-ext已经包含了poi,poi-tl等jar包,所以无需重复导入
- poi-tl文档链接
- poi-tl-ext github链接
使用poi-tl-ext的原因
- 对比poi原生来说简单方便操作
- 对比收费软件来说,开源免费,而且效果也很牛
富文本转word代码
public class RichTextParser {public static void parseToDocx(String content, FileOutputStream fileOutputStream) throws IOException {HtmlRenderPolicy htmlRenderPolicy = new HtmlRenderPolicy();Configure configure = Configure.builder().bind("key", htmlRenderPolicy).build();Map<String, Object> data = new HashMap<>();data.put("key", content);XWPFTemplate.compile("D://input.docx", configure).render(data).writeAndClose(fileOutputStream);}
}
- content 富文本内容
- fileOutputStream 输出流,例如输出到本地磁盘D://2.docx上面
- D://input.docx 是一个模板docx
- key 是用来绑定富文本内容(可以任意起名字只要能和代码模板对应即可),由于我需要导出的富文本内容是随机且不定格式,所以使用一个key包裹即可
- HtmlRenderPolicy 就是poi-tl-ext中富文本导出为word的操作插件,这里需要吹捧一下作者,真的好牛
- poi-tl 还存在各种其他插件,例如表格插件等,适用于各种导出word的操作,还可以自定义插件,也是牛的
- 富文本部分内容如下
<p style=\"text-align: center;\"><span style=\"font-size: 14pt;\"><strong>xxx年度安全生产教育培训工作计划</strong></span></p>\n" +"<p style=\"text-align: center;\"><span style=\"font-size: 14pt;\"><span style=\"font-size: 10pt; color: #e67e23;\">(模板,可上传企业自有制度或修改模板)</span></span></p>\n" +"<p> </p>\n" +"<p><span style=\"font-size: 14pt;\"> <span style=\"color: #ba372a;\">为进一步规范公司安全宣传和教育培训工作,不断提高公司员工安全生产意识和安全素质,增强安全生产法制观念,有力推动公司安全生产基础建设、安全生产诚信建设、安全生产标准化建设和企业安全文化建设,确保今年的安全生产目标指标的实现,特制定本计划如下:</span></span></p>
- 导出内容如下
相关文章:

【JAVA poi-tl-ext 富文本转word】
富文本转word 环境使用poi-tl-ext的原因富文本转word代码 环境 jdk 1.8 <dependency><groupId>io.github.draco1023</groupId><artifactId>poi-tl-ext</artifactId><version>0.4.16</version> </dependency>poi-tl-ext已经包…...
uniapp 小程序注册全局弹窗组件(无需引入,无需写标签)
由于uniapp没有开放根节点,所以一般情况下通过app.components注册,在需要的页面直接写组件标签,但是如果每个页面都需要的话,再每个都加的话会非常的麻烦 网上的思路都不咋地: 1.通过写一个透明弹窗页面来实现&#…...
python 语法学习 day 7
错题反思 1.九九乘法表 第一次提交的答案是:先把所有输入值放在列表里面 EOF,输入后产生异常-->>捕获异常,结束输入 3. 题意:统计单词的种类以及数量(忽略大小写),最终以降序输出(出现次数相同的单词根据单词的…...

【高中数学/幂函数】比较a=2^0.3,b=3^0.2,c=7^0.1的大小
【问题】 比较a2^0.3,b3^0.2,c7^0.1的大小 【解答】 a2^0.32^3/10(2^3)^1/108^1/10 b3^0.23^2/10(3^2)^1/109^1/10 c7^0.17^1/10 由于yx^1/10在x正半轴是增函数,底数大的得数就大。 因为9>8>7,所以b>a>c 【图像】 在图像上绘出曲线yx^1/10&…...

双向带头循环链表
一、概念 何为双向:此链表每一个节点的指针域由两部分组成,一个指针指向下一个节点,另一个指针指向上一个节点,并且两头的节点也是如此,头节点的下一个节点是尾节点,尾节点的上一个节点是头节点;…...
探索TASKCTL和 DataStage 的ETL任务调度协同
在复杂多变的企业环境中,高效、准确的数据处理是支撑业务决策与运营的核心。本文将深入探讨任务调度平台TASKCTL与ETL工具DataStage的深度融合,通过详尽的代码示例、结合细节以及实际案例的具体描述,展示这两个工具如何携手打造企业数据处理生…...
Facebook软体机器人与机器人框架:创新社交互动的未来
随着人工智能技术的不断进步,Facebook正通过软体机器人和先进的机器人框架,重新定义社交互动的未来。这些创新不仅提升了用户体验,也为开发者提供了强大的工具来构建下一代社交应用。 一、Facebook软体机器人:智能化的社交伙伴 …...
掌握音视频转换的艺术:用FFmpeg解锁多媒体的无限可能
在数字时代,音视频内容无处不在,从在线课程、娱乐视频到专业会议,它们都是信息传播的关键载体。然而,随着多媒体格式的不断演进,我们常常会遇到格式不兼容的问题,这成为了享受或处理这些内容的一大障碍。幸…...

C基础day9
一、思维导图 二、课后练习 1> 使用递归实现 求 n 的 k 次方 #include<myhead.h>int Pow(int n,int k) {if(k 0 ) //递归出口{return 1;}else{return n*Pow(n,k-1); //递归主体} }int main(int argc, const char *argv[]) {int n0,k0;printf("请输入n和k:&…...
32. 小批量梯度下降法(Mini-batch Gradient Descent)
在深度学习模型的训练过程中,梯度下降法是最常用的优化算法之一。我们前面介绍了批量梯度下降法(Batch Gradient Descent)和随机梯度下降法(Stochastic Gradient Descent),两者各有优缺点。为了在计算速度和…...

MySQL第八次作业
一、备份与恢复作业: 创库,建表: CREATE DATABASE booksDB; use booksDB; CREATE TABLE books ( bk_id INT NOT NULL PRIMARY KEY, bk_title VARCHAR(50) NOT NULL, copyright YEAR NOT NULL ); CREATE TABLE authors …...

【合集】临时邮箱网站 临时邮箱API(持续更新)
众所周知,在注册一些账户时,比较常见的验证方式就是邮箱,但是在进行一些小众和不知名网站注册时,邮箱的泄露可能预示着不休止的邮件推送。尤其是当我们只是想临时使用邮箱这种情况,第二种,批量注册账号的情…...
职场新人感受
互联网职场感受 阶段介绍 24届6月底毕业生,之前从未实习过。 岗位是后端开发(JAVA),目前已经上班三周(前两周看文档和做了半个简单需求,第三周脱产新人培训)。 职场体验 职场和想象中的工作…...
Window 下Mamba 环境安装踩坑问题汇总及解决方法 (无需绕过selective_scan_cuda)
导航 Mamba 及 Vim 安装问题参看本人之前博客:Mamba 环境安装踩坑问题汇总及解决方法Linux 下Vmamba 安装教程参看本人之前博客:Vmamba 安装教程(无需更改base环境中的cuda版本)Windows 下 VMamba的安装参看本人之前博客…...

前端项目本地的node_modules直接上传到服务器上无法直接使用(node-sasa模块报错)
跑 jekins任务的服务器不能连接外网下载依赖包,就将本地下载的 node_modules直接上传到服务器上,但是运行时node-sass模块报错了ERROR in Missing binding /root/component/node_modules/node-sass/vendor/linux-x64-48/binding.node >> 报错信息类…...

Hadoop3:动态扩容之新增一台机器的初始化工作
一、需求描述 给Hadoop集群动态扩容一个节点 那么,这个节点是全新的,我们需要做哪些准备工作,才能将它融入集群了? 二、初始化配置 1、修改IP和hostname vim /etc/sysconfig/network-scripts/ifcfg-ens33 vim /etc/hostname2、…...

【正点原子i.MX93开发板试用连载体验】录音小程序采集语料
本文最早发表于电子发烧友论坛:【新提醒】【正点原子i.MX93开发板试用连载体验】基于深度学习的语音本地控制 - 正点原子学习小组 - 电子技术论坛 - 广受欢迎的专业电子论坛! (elecfans.com) 接下来就是要尝试训练中文提示词。首先要进行语料采集,这是一…...
【EasyExcel】动态替换表头内容并应用样式
1.定义实体类 import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ContentStyle; import com.alibaba.excel.metadata.BorderStyleEnum; import com.alibaba.excel.metadata.VerticalAlignmentEnum; import com.alibaba.excel.metadata.…...

RocketMQ实现分布式事务
RocketMQ的分布式事务消息功能,在普通消息基础上,支持二阶段的提交。将二阶段提交和本地事务绑定,实现全局提交结果的一致性。 1、生产者将消息发送至RocketMQ服务端。 2、RocketMQ服务端将消息持久化成功之后,向生产者返回Ack确…...
【Rust练习】2.数值类型
练习题来自https://practice-zh.course.rs/basic-types/numbers.html 1 // 移除某个部分让代码工作 fn main() {let x: i32 5;let mut y: u32 5;y x;let z 10; // 这里 z 的类型是? }y的类型不对,另外,数字的默认类型是i32 fn main() {let x: i…...

【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...

解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...