首页 > 编程语言 >如何通过Java代码将 PDF文档转为 HTML格式

如何通过Java代码将 PDF文档转为 HTML格式

时间:2023-05-22 16:11:44浏览次数:53  
标签:文件 Java PdfDocument HTML pdf PDF

虽然PDF文件适合用于打印和发布,但不适合所有类型的文档。例如,包含复杂图表和图形的文档可能无法在PDF中呈现得很好。但是HTML文件可以在任何可运行浏览器的计算机上进行阅读并显示。并且HTML还具有占用服务器资源较小,便于搜索引擎收录的特点。那么今天这篇文章就将展示如何通过Java应用程序将PDF文档转为HTML格式。下面是我整理的具体步骤及方法,并附上Java代码供大家参考。

  • 将PDF文档转换为HTML文件
  • 将PDF文档转换为嵌入SVG的HTML文件
  • 将PDF文档转换为HTML流

代码编译环境:

IntelliJ IDEA 2019(jdk 1.8.0)

PDF Jar包:Free Spire.PDF for Java 5.1.0

引入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文档转换为HTML文件

我们可以使用 PdfDocument.saveToFile(String filename, FileFormat.HTML) 方法,可以直接将PDF文档转换为HTML文件。具体步骤如下。

  • 创建PdfDocument的对象。
  • 使用PdfDocument.loadFromFile() 方法加载PDF文件。
  • 使用PdfDocument.saveToFle() 方法将PDF文件另存为HTML文件。

完整代码

Java

import com.spire.pdf.*;

public class convertPDFToHTML {
    public static void main(String[] args) {

        //创建PdfDocument的对象
        PdfDocument pdf = new PdfDocument();

        //加载PDF文件
        pdf.loadFromFile("郁金香.pdf");

        //将PDF文件保存为HTML文件
        pdf.saveToFile("PDFToHTML.html",FileFormat.HTML);
        pdf.close();
    }
}

PDF文档转换为嵌入SVGHTML文件

PdfDocument.getConvertOptions().setPdfToHtmlOptions(true) 方法,可以在转换时嵌入SVG。将PDF文件转换为嵌入SVG的HTML文件的详细步骤如下。

  • 创建PdfDocument的对象。
  • 使用PdfDocument.loadFromFile() 方法加载PDF文件。
  • 使用PdfDocument.getConvertOptions().setPdfToHtmlOptions(true) 方法启用嵌入SVG。
  • 使用PdfDocument.saveToFle() 方法将PDF文件另存为HTML文件。

完整代码

Java

import com.spire.pdf.*;

public class convertPDFToHTMLEmbeddingSVG {
    public static void main(String[] args) {

        //创建PdfDocument的对象
        PdfDocument doc = new PdfDocument();

        //加载PDF文件
        doc.loadFromFile("郁金香.pdf");

        //设置嵌入SVG
        doc.getConvertOptions().setPdfToHtmlOptions(true);

        //将PDF文件另存为HTML文件
        doc.saveToFile("PDFToHTMLEmbeddingSVG.html", FileFormat.HTML);
        doc.close();
    }
}

将PDF文档转换为HTML流

Spire.PDF for Java还支持将PDF文档转换为HTML流。具体步骤如下。

  • 创建PdfDocument的对象。
  • 使用PdfDocument.loadFromFile() 方法加载PDF文件。
  • 使用PdfDocument.saveToStream() 方法将PDF文件保存为HTML流。

完整代码

Java

import com.spire.pdf.*;

import java.io.*;


public class convertPDFToHTMLStream {
    public static void main(String[] args) throws FileNotFoundException {

        //创建PdfDocument的对象
        PdfDocument pdf = new PdfDocument();

        //加载PDF文件
        pdf.loadFromFile("郁金香.pdf");

        //将PDF文件另存为HTML流
        File outFile = new File("PDFToHTMLStream.html");
        OutputStream outputStream = new FileOutputStream(outFile);
        pdf.saveToStream(outputStream, FileFormat.HTML);
        pdf.close();
    }
}

效果图

—本文完—

标签:文件,Java,PdfDocument,HTML,pdf,PDF
From: https://www.cnblogs.com/Carina-baby/p/17420904.html

相关文章

  • Java的Stream流的分页,Stream的skip和limit实现分页
    1、工具类packagecom.cc.testproject.utils;importcom.github.pagehelper.PageInfo;importorg.springframework.stereotype.Component;importjava.util.List;importjava.util.stream.Collectors;/**List分页工具类*@authorCC*@since2022/2/16**/@Compon......
  • Java网络编程----通过实现简易聊天工具来聊聊NIO
    前文我们说过了BIO,今天我们聊聊NIO。NIO是什么?NIO官方解释它为NewlO,由于其特性我们也称之为,Non-BlockingIO。这是jdk1.4之后新增的一套IO标准。为什么要用NIO呢?我们再简单回顾下BIO:阻塞式IO,原理很简单,其实就是多个端点与服务端进行通信时,每个客户端有一个自己的socket,他们与服......
  • 【JAVA】调用第三方接口发送request请求
    一、通过JDK网络类Java.net.HttpURLConnection通过统一资源定位器(java.net.URL)获取连接器(java.net.URLConnection)。设置请求的参数。发送请求。以输入流的形式获取返回内容。关闭输入流。 1、发送post请求packagecom.Run;importjava.io.*;importjava.net.HttpU......
  • JAVA 截取字符串的三种方法 subString,StringUtils,split
    JAVA截取字符串的三种方法subString,StringUtils,split主要有以下几种方法:1、通过subString()方法来进行字符串截取(最常用)2、通过StringUtils提供的方法3、split()+正则表达式来进行截取 1、通过subString()方法来进行字符串截取,返回字符串中的子字符串,在java中有两种用......
  • 通过java.sql.DriverManager获取多数据源连接
    importlombok.Data;importlombok.SneakyThrows;importorg.springframework.util.StringUtils;importjava.sql.Connection;importjava.sql.Driver;importjava.sql.DriverManager;publicclassJdbcDriverManger{@SneakyThrowspublicstaticConnecti......
  • Java笔记(六):锁
    传统的Synchronized锁Synchronized通过为方法或代码块添加互斥锁,来保证线程安全性。持有相同锁的多个线程,同一时间只有一个线程能够拿到锁并执行锁定的代码块或方法。publicsynchronizedvoidrun(){//dosomething}Lock锁接口Lock的实现类:ReentractLockReentractRe......
  • [Java] JDK与Spring国际化支持
    0序言在Springcontext与SpringIoC对ApplicationContext以及Context相关的设计模式进行了介绍。ApplicationContext作为一个Context在应用的运行层提供了IoC容器、事件、国际化等功能接口。Spring的国际化(i18n)功能是通过MessageSource接口实现的,他提供了MessageSource::getM......
  • Mac版PDF编辑器-Acrobat Pro DC 2023
    AcrobatProDC2023(pdf编辑器)是一款能让用户轻松创建和编辑多种pdf格式的实用工具,并且能够同时使用各种方法编辑大量pdf文件。AcrobatProDC是Mac上运行速度最快、处理能力最强、功能最丰富的工具之一。AcrobatProDC包括强大的图像编辑工具,可让您轻松编辑图片和视频,而......
  • 【Java】引用传递?值传递?
    引用传递和值传递,从上学那会儿就开始强调的概念,不管你是计算机相关专业还是自学Java,一定听过这么一句话:方法调用参数如果是对象,那就是引用传递,如果是基本数据类型,就是值传递。比如:function(Objecto)就是引用传递,function(inti)就是值传递。这两个概念似乎很好理解,我们只需要记......
  • 【整理】html5知识点5
    ============================================HTML5WebSocket什么是websocketWebSocket协议是html5引入的一种新的协议,其目的在于实现了浏览器与服务器全双工通信。看了上面链接的同学肯定对过去怎么低效率高消耗(轮询或comet)的做此事已经有所了解了,而在websocketAPI......