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

PDF 转Word 开源库

1. Apache PDFBox

Apache PDFBox 是一个开源的 Java 库,用于创建和操作 PDF 文档。虽然 PDFBox 本身没有直接支持 PDF 转 Word 的功能,但它可以提取 PDF 内容,你可以结合其他方法将这些内容写入 Word。

添加依赖

<dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.24</version> <!-- 检查是否有最新版本 -->
</dependency>

使用示例

你可以使用 PDFBox 提取文本,然后使用 Apache POI 库将其写入 Word 文档。

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class PdfToWordConverter {public static void main(String[] args) {String pdfFilePath = "path/to/input.pdf";String wordFilePath = "path/to/output.docx";try {convertPdfToWord(pdfFilePath, wordFilePath);System.out.println("PDF converted to Word successfully!");} catch (IOException e) {e.printStackTrace();}}public static void convertPdfToWord(String pdfFilePath, String wordFilePath) throws IOException {PDDocument document = PDDocument.load(new FileInputStream(pdfFilePath));PDFTextStripper stripper = new PDFTextStripper();String pdfText = stripper.getText(document);document.close();// 创建 Word 文档并写入文本XWPFDocument wordDocument = new XWPFDocument();XWPFParagraph paragraph = wordDocument.createParagraph();paragraph.createRun().setText(pdfText);try (FileOutputStream out = new FileOutputStream(wordFilePath)) {wordDocument.write(out);}wordDocument.close();}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • K8S - ConfigMap的简介和使用
  • Grafana中的rate与irate以及histogram
  • 【Spark集群部署系列四】Spark on YARN介绍和环境部署(个人笔记,供参考)
  • 聚星文社,绘唐科技AI工具
  • Redis主从同步配置
  • K8S上安装LongHorn(分布式块存储) --use
  • 远程消息传递的艺术:NSDistantObject在Objective-C中的妙用
  • Spring Security 6如何使用?
  • C++(10)类语法分析(1)
  • LLM应用开发实战:打造智能搜索与推荐引擎
  • 多线程面试一
  • 【数据结构】关于优先级队列(堆),你了解内部原理吗?(超详解!!!)
  • ChatGLM 主要代码分析
  • 软件测试---接口测试
  • 设计模式(2)行为型模式和七大原则
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • canvas 绘制双线技巧
  • Docker入门(二) - Dockerfile
  • JavaScript异步流程控制的前世今生
  • Java面向对象及其三大特征
  • JS字符串转数字方法总结
  • LeetCode29.两数相除 JavaScript
  • passportjs 源码分析
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 阿里云前端周刊 - 第 26 期
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 基于HAProxy的高性能缓存服务器nuster
  • 计算机常识 - 收藏集 - 掘金
  • 容器服务kubernetes弹性伸缩高级用法
  • 设计模式走一遍---观察者模式
  • 深入浏览器事件循环的本质
  • 说说动画卡顿的解决方案
  • 找一份好的前端工作,起点很重要
  • ​MySQL主从复制一致性检测
  • # Panda3d 碰撞检测系统介绍
  • #pragma 指令
  • (1) caustics\
  • (3)STL算法之搜索
  • (Qt) 默认QtWidget应用包含什么?
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (力扣)1314.矩阵区域和
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (一) springboot详细介绍
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (正则)提取页面里的img标签
  • (转)负载均衡,回话保持,cookie
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .net 按比例显示图片的缩略图
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)