众所周知,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 格式文件。

完整代码

Java

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 格式文件。

完整代码

Java

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

效果图

—本文完—

如何通过Java应用程序将 PDF转为Word文档的更多相关文章

  1. 判断pdf、word文档、图片等文件类型(格式)、大小的简便方法

    判断pdf.word文档.图片等文件类型(格式).大小的简便方法 很久没发文了,今天有时间就写一下吧. 关于上传文件,通常我们都需要对其进行判断,限制上传的类型,如果是上传图片,我们甚至会把图片转化成 ...

  2. Python处理PDF和Word文档常用的方法

    Python处理PDF和Word文档的模块是PyPDF2,使用之前需要先导入. 打开一个PDF文档的操作顺序是:用open()函数打开文件并用一个变量来接收,然后把变量给传递给PdfFileReade ...

  3. Java 导出数据库表信息生成Word文档

    一.前言 最近看见朋友写了一个导出数据库生成word文档的业务,感觉很有意思,研究了一下,这里也拿出来与大家分享一波~ 先来看看生成的word文档效果吧 下面我们也来一起简单的实现吧 二.Java 导 ...

  4. Java 设置、删除、获取Word文档背景(基于Spire.Cloud.SDK for Java)

    本文介绍使用Spire.Cloud.SDK for Java 提供的BackgroundApi接口来操作Word文档背景的方法,可设置背景,包括设置颜色背景setBackgroundColor().图 ...

  5. pdf及word文档的读取 pyPDF2,docx

    #!python3 #-*- coding:utf8 -*- #PyPDF2可能会打不开某些pdf文档,也不能提取图片,图表或者其他媒介从PDF文件中.但是它能提取文本从PDF中,转化为字符. imp ...

  6. 【Java】用Freemarker完美导出word文档(带图片)

    Java  用Freemarker完美导出word文档(带图片) 前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. ...

  7. JAVA实现在线查看PDF和office文档

    一个项目中要做一个在线预览附件(和百度文库差不多)的小功能点,楼主在开发过程中踩了很多坑的同时也总结了一些方法,仅供广大猿友参考,那么要实现这个小功能,目前主要是有如下3种可行的实现方式,下面先说实现 ...

  8. PDF转word文档

    本文未对扫描版的PDF实验,但是可编辑PDF版本可以转换为word而且转换后的word是可编辑的. 1.从http://xiazai.zol.com.cn/detail/33/326858.shtml ...

  9. C#代码将html样式文件转为Word文档

    首先有个这样的需求,将以下网页内容下载为Word文件. html代码: <div class="modal-body">    <div style=" ...

  10. Python处理PDF和Word文档常用的方法(二)

    Python处理word时,需要安装和导入python-docx模块. 安装命令:pip install python-docx 导入命令:import docx 编码编写顺序:用docx.Docum ...

随机推荐

  1. C语言二叉树遍历及路径查找

    #include<iostream> #include<stdio.h> #include<math.h> #include<malloc.h> usi ...

  2. python face_recognition安装及各种应用

    1.安装 首先,必须提前安装cmake.numpy.dlib,其中,由于博主所用的python版本是3.6.4(为了防止不兼容,所以用之前的版本),只能安装19.7.0及之前版本的dlib,所以直接p ...

  3. 2.Python封装练习及私有属性

    面向对象三大特性 封装:根据职责将属性和方法封装到一个抽象的类中 继承:实现代码的重用,相同代码不需要重复的编写 1.单继承 2.多继承 多态:不同的对象调用相同的方法,产生不同的执行结果,增加代码的 ...

  4. 斑马打印机二维码标签制作(.prn文件)基础简单快速上手

    在工厂生产中,经常需要一线员工在电脑上输入订单号的情况.订单号往往很长,手输容易出错,并且浪费时间,所以常常使用扫码枪扫描二维码的方式输入订单号,本篇就是记录斑马打印机.prn标签模板的制作和使用. ...

  5. Microsoft Office for Mac最新版本安装教程,亲测可用!!!

    办公必备的Office工具,它为需要使用 Office 工具的用户和企业设计,让他们可以利用功能强大的 Outlook 来处理电子邮件.日历和通讯录事宜.你所熟知和信赖的 Office 经过更新后,可 ...

  6. GIT入门与Gitee的使用

    一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 工作原理 / 流程: Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remo ...

  7. 搭建harbor私有仓库

    2-1.项目说明  Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,由VMware开源,其通过添加一些企业必需的功能特性,例如安全.标识和管理等,扩展了开源 Docke ...

  8. zk,kafka,redis哨兵,mysql容器化

    1. zookeeper,kafka容器化 1.1 zookeeper+kafka单机docker模式 docker pull bitnami/zookeeper:3.6.3-debian-11-r4 ...

  9. Mysql通过Merge引擎进行分表

    Mysql通过Merge引擎进行分表 转载: https://www.jianshu.com/p/9420a6a8ae2e https://www.cnblogs.com/xbq8080/p/6628 ...

  10. 树莓派编译opencv4

    前言 我用的是 树莓派3b 编译的 opencv4.1.0,如果不想编译可以直接下载我编译好的. 下载地址 直接 make install,或者按照我后续步骤复制动态链接库. 准备 需要调节虚拟内存大 ...