Java实现PDF转为Word文档的示例代码
作者:E-iceblue 发布时间:2021-10-05 02:19:26
众所周知,PDF文档除了具有较强稳定性和兼容性外, 还具有较强的安全性,在工作中可以有效避免别人无意中对文档内容进行修改。但与此同时,也妨碍了对文档的正常的修改。这时我们可以将PDF转为Word文档进行修改或再编辑。使用软件将 PDF 文档转换为 Word 文档十分简单,然而要在转换时保持布局甚至字体格式却并不容易。本文将分为以下两部分介绍如何在保持布局的情况下将PDF转为Word文档。
将 PDF 转换为固定布局的 Doc/Docx 文档
将 PDF 转换为流动形态的 Doc/Docx 文档
固定布局模式转换速度快,有利于最大程度保持 PDF 文件的原貌。但是,生成的文档的可编辑性将受到限制,因为 PDF 中的每一行文本将在生成的 Word 文档中显示在单独的框架中。
流动形态是一种完整的识别模式。转换后的内容不会以框架形式呈现,并且生成的文档的结构是可流动的。生成的 Word 文档很容易重新编辑,但看起来可能与原始 PDF 文件不同。
代码编译环境
IntelliJ IDEA 2018(jdk 1.8.0)
PDF Jar包:Free Spire.PDF for Java 5.1.0
1.引入jar包
导入方法1:
手动引入。将Free Spire.PDF for Java下载到本地,解压,找到lib文件夹下的Spire.PDF.jar文件。在IDEA中打开如下界面,将本地路径中的jar文件引入Java程序:
导入方法2:如果您想通过 Maven安装,则可以在 pom.xml 文件中添加以下代码导入 JAR 文件
<repositories>
<repository>
<id>com.e-iceblue</id>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf.free</artifactId>
<version>5.1.0</version>
</dependency>
</dependencies>
将 PDF 转换为固定布局的 Doc/Docx 文档
以下是将 PDF 转为固定布局的Doc/Docx 文档的具体步骤。
创建一个 PdfDocument 对象。
使用 PdfDocument.loadFromFile() 方法加载 PDF 文件。
使用 PdfDocument.saveToFile(String fileName, FileFormat fileFormat) 方法将 PDF 文档转换为 Doc 或 Docx 格式文件。
完整代码
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
public class ConvertPdfToWordWithFixedLayout {
public static void main(String[] args) {
//创建一个 PdfDocument 对象
PdfDocument doc = new PdfDocument();
//加载 PDF 文件
doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");
//将PDF转换为Doc格式文件并保存
doc.saveToFile("output/ToDoc.doc", FileFormat.DOC);
//将PDF转换为Docx格式文件并保存
doc.saveToFile("output/ToDocx.docx", FileFormat.DOCX);
doc.close();
}
}
将 PDF 转换为流动形态的 Doc/Docx 文档
以下是将 PDF 转换为流动形态的 Doc/Docx 文档的具体步骤:
创建一个 PdfDocument 对象。
使用 PdfDocument.loadFromFile() 方法加载 PDF 文件。
使用 PdfDocument. getConvertOptions().setConvertToWordUsingFlow() 方法将转换模式设置为流。
使用 PdfDocument.saveToFile(String fileName, FileFormat fileFormat) 方法将 PDF 文档转换为 Doc 或 Docx 格式文件。
完整代码
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
public class ConvertPdfToWordWithFlowableStructure {
public static void main(String[] args) {
//创建一个 PdfDocument 对象
PdfDocument doc = new PdfDocument();
//加载 PDF 文件
doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");
//将 PDF 转换为流动形态的Word
doc.getConvertOptions().setConvertToWordUsingFlow(true);
//将PDF转换为Doc格式文件并保存
doc.saveToFile("output/ToDoc.doc", FileFormat.DOC);
//将PDF转换为Docx格式文件并保存
doc.saveToFile("output/ToDocx.docx", FileFormat.DOCX);
doc.close();
}
}
效果图
来源:https://www.cnblogs.com/Yesi/p/17061190.html


猜你喜欢
- 图像切换器(ImageSwitcher),用于实现类似于windows操作系统下的windows照片查看器中的上一张 下一张切换图片的功能,
- 前言在有些业务场景中,系统对于响应时间有一定的要求,而一个方法里面同步执行的业务逻辑太多势必会影响响应速度,带来不好的用户体验。比如登录时记
- 1. Java对象结构Java对象结构包括三部分:对象头、对象体和填充字节,如图所示:对象头又包括三个字段:第一个字段叫作Mark Word
- 本文实例为大家分享了C语言运用函数指针数组制作计算器的具体代码,供大家参考,具体内容如下先来回顾一下概念:指针数组 —— 存放指针的数组函数
- 从今天开始,本专栏持续更新Android简易实战类博客文章。和以往专栏不同,此专栏只有实例。每个实例尽量按照知识点对应相应一章节的内容去写,
- 一、点睛邻接矩阵通常采用一个一维数组存储图中节点的信息,采用一个二维数组存储图中节点之间的邻接关系。邻接矩阵可以用来表示无向图、有向图和网。
- 一、Java中锁的概念自旋锁:是指当一个线程获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能被成功获取,
- 一、mybatis-plus简介:Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增
- 本文实例讲述了C#读取目录下所有指定类型文件的方法。分享给大家供大家参考。具体分析如下:首先要引入命名空间:using System.IO;
- Android EditText输入手机号空格开发需求是在登录页面的手机EditText中间插入空格,让用户看起来方便点, 130 1234
- Android 系统每隔 16ms 会发出 VSYNC 信号重绘界面(Activity)。之所以是 16ms,是因为 Android 设定的
- 二叉树的分类(按存储结构)树的分类(按存储结构) &nbs
- 一、队列简介队列是一个有序列表,遵循“先入先出”的原则,即先存入队列的数据要先取出,后存入的数据后取出。队列有两种存储表示,顺序表示和链式表
- C#开发WinForm,如何实现TextBox获取输入焦点时自动全选?&nbs
- Flutter 键值存储数据库键值存储是开发中十分常见的需求,在Flutter开发中,一般使用 shared_preferences 插件来
- 这里使用 Maven 项目管理工具构建项目初始化项目打开 Intellij IDEA,点击 Create New Project选择 Mav
- 先上效果图文件和加密文件之间的转换。先添加辅助类public class AES_EnorDecrypt { &n
- 前言:CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程执行完后再执行。例如,应用程序的主线程希望在负
- 1.简介本教程将介绍如何在Spring Security中设置身份验证提供程序,与使用简单UserDetailsService的标准方案相比
- 在Android开发过程中,有时会需要一些消息提示,大多数情况可以用dialog来做,但有些消息不需要用户去点击取消并且不能对用户体验产生影