PDF 转Word 开源库

embedded/2024/10/17 20:58:46/

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();}
}

http://www.ppmy.cn/embedded/100341.html

相关文章

机器学习:opencv图像识别--图片专项

目录 前言 一、读取图片 1.安装opencv库 2.读取彩色图片 3.读取灰度图 二、RGB 1.RGB的概念 2.颜色通道&#xff1a; 3.图像表示 4.代码实现单通道图像 三、ROI 1.代码实现 四、图片打码 五、图片组合 六、图片缩放 总结 前言 OpenCV&#xff08;Open Source C…

PHP开发过程中常见问题快速解决

1.PHP解决文件名不合法,无法创建 文件名称不能含有 /\:*?"<>|符号&#xff0c;直接替换关键词就OK了 $search array(*,$,\\,/,"",",*,?,:,<,>,|, ,[,],【,】,(,),&#xff08;,&#xff09;); $name"1:.php"; $new_namestr_repla…

ArcGIS 数据服务在三维 Cesium/SuperMap 项目中使用遇到的一些问题及其解决方法

ArcGIS 数据服务在三维 Cesium/SuperMap 项目中使用遇到的一些问题及其解决方法 一、三维系统支持的 ArcGIS 服务及其投影 1、动态服务 ArcGIS 动态服务的数据&#xff0c;支持任意投影在三维系统中加载。 2、切片服务 ArcGIS 切片服务仅支持 3857(web 墨卡托投影)&#x…

【Leetcode 1941 】 检查是否所有字符出现次数相同 —— 数组模拟哈希表

给你一个字符串 s &#xff0c;如果 s 是一个 好 字符串&#xff0c;请你返回 true &#xff0c;否则请返回 false 。 如果 s 中出现过的 所有 字符的出现次数 相同 &#xff0c;那么我们称字符串 s 是 好 字符串。 示例 1&#xff1a; 输入&#xff1a;s "abacbc"…

一文掌握 Go 内存对齐

往期精选文章推荐&#xff1a; 深入理解 go map go 常用关键字 深入理解 Go 数组、切片、字符串 深入理解channel 深入理解 go context 深入 go interface 底层原理 深入理解 go reflect 深入理解 go unsafe 前言 在前面的文章 《深入理解 go reflect》和 《深入理解…

粘包和抓包工具

在网络传输中&#xff0c;"粘包"&#xff08;TCP粘包&#xff09;是指使用TCP协议进行数据传输时&#xff0c;发送方发送的多个数据包被接收方一次性接收或者接收方一次读取操作获取到了发送方多次发送的数据。这种情况通常发生在使用TCP协议的socket编程中。 TCP是…

pikachu-ssrf_redis

目录 SSRF 1、SSRF漏洞介绍&#xff1a; 2、SSRF漏洞原理&#xff1a; 3、SSRF漏洞利用手段&#xff1a; 4、SSRF漏洞绕过方法&#xff1a; SSRF(curl)用法 1、通过网址访问链接 2、利用file协议查看本地文件 3、dict协议扫描内网主机开放端口 4.gopher&#xff1a;威…

《javaEE篇》--定时器

定时器概念 当我们不需要某个线程立刻执行&#xff0c;而是在指定时间点或指定时间段之后执行&#xff0c;假如我们要定期清理数据库里的一些信息时&#xff0c;如果每次都手动清理的话就太麻烦&#xff0c;所以就可以使用定时器。定时器就可以比作一个闹钟&#xff0c;可以让…