当前位置: 首页 > news >正文

pdf转ofd之移花接木

文章目录

  • 1.pdf转ofd的方法
    • 1.1 spire.pdf.free
    • 1.2 ofdrw
  • 2.移花接木
  • 3.总结

1.pdf转ofd的方法

1.1 spire.pdf.free

    这个是一个半开源的类库,免费版本的在转换的时候会有一个10的限制,所以不推荐使用,具体教程网上都有,这里只是分享有这么一个坑。

image-20250824140411498

1.2 ofdrw

    这个是个国产开源的类库,只不过它的更新处于停滞的状态,所依赖的pdfbox(2.x)的版本还比较低

    依赖如下:

<dependency><groupId>org.ofdrw</groupId><artifactId>ofdrw-converter</artifactId><version>2.3.5</version>
</dependency>
<dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.25</version>
</dependency>

    这种搭配可以正常使用

2.移花接木

    如果把pdfbox的版本升级到3.x那么ofdrw就会报错使用不了了,所以就需要修改ofdrw的源码兼容pdfbox3.x的api:

<dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>3.0.3</version>
</dependency>

    先将ofdrw2.0.25中的org.ofdrw.converter.ofdconverter.PDFConverter类复制放到项目的src/main/java下:

image-20250824143807293

    需要改动的类的源码位置如下:

image-20250824142907907

    只需要将上面标红的那个api换成如下的代码:

PDDocument pdfDoc = Loader.loadPDF(FileUtil.readBytes(filepath.toFile()));

    FileUtil工具类是Hutool里面的引入Hutool的依赖就可以使用这个FileUtil工具类了,很方便,不用自己去写读取文件转byte数据的代码了。

3.总结

    这也是我在做项目的时候发现升级版本带来的坑,然后我就去翻源码,结果我在源码中找到了一个新的api,修改源码接上去就可以用了,亲测有效,希望我的分享对你有所帮助,请一键三连,么么么哒!

http://www.xdnf.cn/news/1398061.html

相关文章:

  • 面试 八股文 经典题目 - Mysql部分(一)
  • jsqlparser(六):TablesNamesFinder 深度解析与 SQL 格式化实现
  • Java中使用正则表达式的正确打开方式
  • 在Kotlin中安全的管理资源
  • ⸢ 叁 ⸥ ⤳ 默认安全:概述与建设思路
  • Vue2之axios在脚手架中的使用以及前后端交互
  • MongoDB 聚合管道(Aggregation)高级用法:数据统计与分析
  • destoon8.0根据模块生成html地图
  • Go 语言面试指南:常见问题及答案解析
  • Excel工作技巧
  • 【自然语言处理与大模型】多机多卡分布式微调训练的有哪些方式
  • 【Python】并发编程(一)
  • 网络工程师软考选择题精讲与解题技巧
  • Ubuntu系统下交叉编译Android的X264库
  • 【Qt开发】按钮类控件(一)-> QPushButton
  • 互联网大厂面试:大模型应用开发岗位核心技术点解析
  • LeetCode54螺旋矩阵算法详解
  • MySQL數據庫開發教學(四) 後端與數據庫的交互
  • 【Docker】Docker初识
  • 医院排班|医护人员排班系统|基于springboot医护人员排班系统设计与实现(源码+数据库+文档)
  • flink中 Lookup Join和Interval Join和Regular Join使用场景与对比
  • HTML 核心元素实战:超链接、iframe 框架与 form 表单全面解析
  • Java类加载与JVM详解:从基础到双亲委托机制
  • 基于 Kubernetes 的 Ollama DeepSeek-R1 模型部署
  • Oracle 数据库性能调优:从瓶颈诊断到精准优化之道
  • Zynq开发实践(FPGA之输入、输出整合)
  • K8s卷机制:数据持久化与共享
  • 【机器学习基础】机器学习中的容量、欠拟合与过拟合:理论基础与实践指南
  • 【高级机器学习】 4. 假设复杂度与泛化理论详解
  • HiFi-GAN模型代码分析