使用poi-tl动态写入目录更新问题解决

在使用poi-tl动态写完word后,是无法更新目录的,使用poi-tl提供的插件也是不行的,而且很多使用poi手动写入的也是不行,最多就是让你在打开文件时提示你更新目录/更新域,用户体验很差,要点击好几次而且wps还不一定会弹的出来,只有office可以弹框。所以全网搜索最终找到两种解决方案,亲测可用,包含附件破解jar包,当然有商业版的更好

引入破解jar包,并导入项目,在资源里下载
spire.doc.free-5.2.0.jar
aspose-words-20.12-jdk17-crack.jar
在项目里的resources目录下新增lib文件夹将jar放入,打开pom文件夹配置

1,使用spire.doc(耗时长)

        <dependency><groupId>e-iceblue</groupId><artifactId>spire.doc.free</artifactId><version>5.2.0</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/ spire.doc.free-5.2.0.jar</systemPath></dependency>
  public static void main(String[] args) throws Exception {String wordPath = "D:\word\template\test.docx"Document dd = new Document(wordPath);// 更新目录dd.updateTableOfContents();// 再保存到原文件或者保存到新文件地址都可以dd.saveToFile(wordPath);
}

2,使用aspose.words

        <dependency><groupId>com.aspose</groupId><artifactId>aspose-words</artifactId><version>20.12</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/aspose-words-20.12-jdk17-crack.jar</systemPath></dependency>
  public static void main(String[] args) throws Exception {String wordPath = "D:\word\template\test.docx"Document doc = new Document(wordPath );// 更新目录doc.updateFields();// 再保存到原文件或者保存到新文件地址都可以doc.save(wordPath);
}
  // aspose 还提供很多转换功能比如转pdfpublic static void main(String[] args) throws Exception {String wordPath = "D:\word\template\test.docx"String pdfPath = "D:\word\template\testPdf.pdf"File file = new File(pdfPath);try (FileOutputStream os = new FileOutputStream(file)) {Document doc = new Document(pdfPath);doc.updateFields();doc.save(os, SaveFormat.PDF);}   
}

打包会遇到的一点小坑

当使用system引入依赖时,打包的时候要多注意,要加上如下配置,不然springboot是不会这种方式引入的jar进行打包的。

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!-- 打包时会将本地jar一起打包 --><configuration><includeSystemScope>true</includeSystemScope></configuration>     </plugin></plugins>
</build>

参考连接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/451561.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

归一化输入

当输入的不同的特征取值范围差异过大&#xff0c;取得对应参数差别也会很大&#xff0c;在对参数进行优化的过程中&#xff0c;参数小的维度步长较小&#xff0c;参数大的维度步长较大&#xff0c;优化过程中路径曲折&#xff0c;将输入归一化&#xff0c;使特征取值范围差别小…

Leetcode 剑指 Offer II 098.不同路径

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer&#xff08;专项突击版&#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下…

华强北耳机最强攻略。华强北Airpods不踩坑,指南在这

#华强北Airpods##华强北耳机#这一篇文章&#xff0c;我会比较啰嗦&#xff0c;但会十分详细介绍目前能入手的渠道 和每一个渠道入手的优缺点&#xff0c;以便各位选择适合自己的渠道入手。 ■ 01 芯片ic大升级—————— 采用全新07IC板的洛达Ae芯片 整体提升三个单位算法 该…

idea-java序列化serialversionUID自动生成

&#x1f496;简介 java.io.Serializable 是 Java 中的一个标记接口&#xff08;marker interface&#xff09;&#xff0c;它没有任何方法或字段。当一个类实现了 Serializable 接口&#xff0c;那么这个类的对象就可以被序列化和反序列化。序列化是将对象的状态转换为字节流…

【原创】java+ssm+mysql小区物业管理系统设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

使用 Docker-compose 部署达梦 DM 数据库

目录 1. 获取达梦 DM8 Docker 镜像并上传到 Harbor 服务器 2. Docker-compose 部署达梦 DM8 数据库 3. 配置 dm.ini 文件 4.完整的 dm.ini 文件 最近&#xff0c;将 MySQL 数据库迁移到了达梦 DM8 数据库。本文将分享如何通过 Docker-compose 部署达梦 DM8 数据库的过程&am…

全面的编程语言常识

本文首发 编程语言常识 语雀看图区别编程语言什么是强类型、弱类型语言&#xff1f;哪种更好&#xff1f;强...https://www.yuque.com/ysgstudyhard/da6e0c/ggatoo 看图区别编程语言 什么是强类型、弱类型语言&#xff1f;哪种更好&#xff1f; 强类型语言 强类型语言是一…

网络通信与并发编程(二)基于tcp的套接字、基于udp的套接字、粘包现象

基于tcp的套接字 文章目录 基于tcp的套接字一、套接字的工作流程二、基于tcp的套接字通信三、基于udp的套接字通信四、粘包现象 一、套接字的工作流程 Socket是应用层与TCP/IP协议族通信的中间软件抽象层&#xff0c;它是一组接口。在设计模式中&#xff0c;Socket其实就是一个…

【Java】多线程 Start() 与 run() (简洁实操)

Java系列文章目录 补充内容 Windows通过SSH连接Linux 第一章 Linux基本命令的学习与Linux历史 文章目录 Java系列文章目录一、前言二、学习内容&#xff1a;三、问题描述start() 方法run() 方法 四、解决方案&#xff1a;4.1 重复调用 .run()4.2 重复调用 start()4.3 正常调用…

基础数据结构——链表(单向链表,双向链表,循环链表)

1.概述 在计算机科学中&#xff0c;链表是数据元素的线性集合&#xff0c;其每个元素都指向下一个元素&#xff0c;元素存储上并不连续 分类 单向链表&#xff0c;每个元素只知道其下一个元素是谁 双向链表&#xff0c;每个元素知道其上一个元素和下一个元素 循环链表&am…

EasyExcel填充模板导出excel.xlsx

菜鸟的自我救赎&#xff0c;自从有了GPT&#xff0c;还是头一次一个bug写一天。 直接贴导出excel模板的完整案例 官网冲刺 EasyExcel EasyExcel填充模板导出excel.xlsx / 导出excel模板 一、bug(不需要请跳过) 1.1 使用apache poi操作excel报错 java.lang.NoSuchMethodError…

与双指针的亲密接触:快与慢的浪漫交错

公主请阅 1.合并两个有序数组1.1 题目说明示例 1示例 2示例 3 1.2 题目分析 1.3代码部分1.4 代码解析 2.移动零2.1题目说明示例 1示例 2 2.2题目分析2.3代码部分2.4代码解析 1.合并两个有序数组 题目传送门 1.1 题目说明 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums…

汽车免拆诊断案例 | 2022款大众捷达VS5车行驶中挡位偶尔会锁在D3挡

故障现象  一辆2022款大众捷达VS5汽车&#xff0c;搭载EA211发动机和手自一体变速器&#xff0c;累计行驶里程约为4.5万km。该车行驶中挡位偶尔会锁在D3挡&#xff0c;车速最高约50 km/h&#xff0c;且组合仪表上的发动机故障灯和EPC灯异常点亮。 故障诊断  用故障检测仪检…

linux一二三章那些是重点呢

第一章 静态库动态库的区别 什么是库 库文件是计算机上的一类文件&#xff0c;可以简单的把库文件看成一种代码仓库&#xff0c;它提供给使用者一些可以直接 拿来用的变量、函数或类。 如何制作 静态动态库 静态库&#xff1a; GCC 进行链接时&#xff0c;会把静态库中代码打…

MySQL-15.DQL-分页查询

一.DQL-分页查询 -- 分页查询 -- 1. 从 起始索引0 开始查询员工数据&#xff0c;每页展示5条记录 select * from tb_emp limit 0,5; -- 2.查询 第1页 员工数据&#xff0c;每页展示5条记录 select * from tb_emp limit 0,5; -- 3.查询 第2页 员工数据&#xff0c;每页展示5条记…

Golang | Leetcode Golang题解之第491题非递减子序列

题目&#xff1a; 题解&#xff1a; var (temp []intans [][]int )func findSubsequences(nums []int) [][]int {ans [][]int{}dfs(0, math.MinInt32, nums)return ans }func dfs(cur, last int, nums []int) {if cur len(nums) {if len(temp) > 2 {t : make([]int, len(…

4.计算机网络_TCP

可靠与效率 TCP的主要特点&#xff1a; TCP是面向连接的运输层协议&#xff0c;每一条TCP连接只能有两个端点&#xff0c;即&#xff1a;点对点、一对一形式。每一个端口都是一个socket。TCP提供可靠交付的服务TCP提供全双工通信&#xff0c;因为TCP的收发缓冲区是分开的。TC…

java导出带图形的word

先看效果图&#xff1a;方法都是一样的&#xff0c;所以数据只做了前两组 第一步需要准备模版&#xff1a; 新建一个word插入图表&#xff0c;选择想要的图表。 编辑图表&#xff1a;营业额表示数字&#xff0c;季度表示文字。其他的样式编辑可根据自己的需求更改&#xff0c;…

(42)MATLAB中使用fftshift绘制以零为中心的功率谱

文章目录 前言一、MATLAB代码二、仿真结果画图 前言 在分析信号的频率分量时&#xff0c;将零频分量平移到频谱中心会很有帮助。本例给出绘制以零为中心的功率谱的方法。 一、MATLAB代码 代码如下&#xff1a; f 1; % 余弦波的振荡频率&#xf…

400行程序写一个实时操作系统(十):用面向对象思想构建抢占式内核

前言 通过前几章的学习&#xff0c;我们学会了如何为RTOS设计一个合理的内存管理算法。现在&#xff0c;是时候学习设计RTOS内核了。 关于RTOS内核的文章也有很多&#xff0c;但都有一点先射箭再化靶子的意味。要么是代码连篇解释却寥寥无几&#xff0c;要么是要先怎么样再怎么…