首页 > 编程语言 >如何通过Java应用程序将 PDF转为Word文档

如何通过Java应用程序将 PDF转为Word文档

时间:2023-01-19 11:12:13浏览次数:82  
标签:Docx Word doc PdfDocument 文档 PDF Java Doc

众所周知,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();
    }
}

效果图

—本文完—

标签:Docx,Word,doc,PdfDocument,文档,PDF,Java,Doc
From: https://www.cnblogs.com/Yesi/p/17061190.html

相关文章

  • Java命名规则 方法名用驼峰 ;类首字母大写;方法全小写
    类命名规则 1.由字母、下划线、美元符号和数字组成,长度不限 2、首字符不能是数字3、不能是关键字4、不能是true、false和null,尽管这三个不是关键字5、区分大小写的......
  • 使用Gradle构建Java项目
    引入springboot插件该插件发布在Gradle的插件门户网站上,可以使用插件块来应用:plugins{id'org.springframework.boot'version'2.3.7.RELEASE'//维护springboot......
  • Solon Java Framework v1.12.2 发布
    一个更现代感的Java应用开发框架:更快、更小、更自由。没有Spring,没有Servlet,没有JavaEE;独立的轻量生态。主框架仅0.1MB。@ControllerpublicclassApp{publ......
  • [LeetCode] 2299. Strong Password Checker II
    Apasswordissaidtobe strong ifitsatisfiesallthefollowingcriteria:Ithasatleast 8 characters.Itcontainsatleast onelowercase letter.It......
  • 【Javaweb】Servlet四 | ServletConfig类|ServletContext类
    ServletConfig类是Servlet程序的配置信息类。ServletConfig类的三大作用1、可以获取Servlet程序的别名servlet-name的值System.out.println("HelloServlet程序的别名"+s......
  • JavaScript事件循环
    一、是什么先,JavaScript是一门单线程的语言,意味着同一时间内只能做一件事,但是这并不意味着单线程就是阻塞,而实现单线程非阻塞的方法就是事件循环在JavaScript中,所有的任......
  • javaScript数组的sort()方法
    javaScript数组的sort()方法:今天再学习javaScript的数组的Array.sort()方法时,遇到了一个很有意思的问题,这个方法,直接调用,其实并不会得到我们想要的排序,而是会以一种很机械......
  • JavaScript学习笔记—instanceof和hasOwn
    1.instanceof用来检查一个对象是否是一个类的实例检查的是对象的原型链上是否有该类实例(只要原型链上有该类实例,就会返回true)Object是所有对象的原型,所以任何对象和Ob......
  • JavaScript trim() 方法
    JavaScripttrim()方法JavaScriptString对象去除字符串的头尾空格:varstr="Runoob";alert(str.trim());输出结果:Runoob定义和用法:trim()方法用于删......
  • Java面向对象 super 与 重写方法
    super·注意点: 1.super调用父类的构造方法,必须在构造方法的第一个 2.super必须出现在子类的方法或构造方法中! 3.super和this不能同时调用构造方法super和this的区......