虽然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代码将 PDF文档转为 HTML格式的更多相关文章

  1. 利用Java动态生成 PDF 文档

    利用Java动态生成 PDF 文档,则需要开源的API.首先我们先想象需求,在企业应用中,客户会提出一些复杂的需求,比如会针对具体的业务,构建比较典型的具备文档性质的内容,一般会导出PDF进行存档.那 ...

  2. 如何通过Java代码向Word文档添加文档属性

    Word文档属性包括常规.摘要.统计.内容.自定义.其中摘要包括标题.主题.作者.经理.单位.类别.关键词.备注等项目.属性相当于文档的名片,可以添加你想要的注释.说明等.还可以标注版权. 今天就为大 ...

  3. 如何通过C#/VB.NET 代码调整PDF文档的页边距

    PDF边距是页面主要内容区域和页面边缘之间的距离.与Word页边距不同,PDF文档的页边距很难更改.因为Adobe没有提供操作页边距的直接方法.但是,您可以通过缩放页面内容来改变页边距.本文将介绍如何 ...

  4. 手把手教你使用 Java 在线生成 pdf 文档

    一.介绍 在实际的业务开发的时候,研发人员往往会碰到很多这样的一些场景,需要提供相关的电子凭证信息给用户,例如网银/支付宝/微信购物支付的电子发票.订单的库存打印单.各种电子签署合同等等,以方便用户查 ...

  5. 如何通过 Java 代码隐藏 Word 文档中的指定段落

    在编辑Word文档时,我们有时需要将一些重要信息保密. 因此,可以隐藏它们以确保机密性. 在本文中,将向您介绍如何通过 Java 程序中的代码隐藏 Word 文档中的特定段落.下面是我整理的具体步骤, ...

  6. 利用Python将PDF文档转为MP3音频

    1. 转语音工具 微信读书有一个功能,可以将书里的文字转换为音频,而且声音优化的不错,比传统的机械朗读听起来舒服很多. 记得之前看到过Python有一个工具包,可以将文字转换为语音,支持英文和中文,而 ...

  7. 如何通过Java代码给Word文档添加水印?

    Word中可以为文档添加的水印分为两种形式:文字水印和图片水印.水印是一种数字保护的手段,在文档上添加水印可以传达有用信息,或者在不影响正文文字显示效果的同时,为打印文档增添视觉趣味,能起到传递信息, ...

  8. 如何通过Java 代码设置 Word 文档页边距

    页边距是指页面的边线到文字的距离.通常可在页边距内部的可打印区域中插入文字和图形,也可以将某些项目放置在页边距区域中(如页眉.页脚和页码等).在我们用的Word文档中,都会设置页边距统一标准格式,页边 ...

  9. [转载]Java在线打开PDF文档

    步骤一:(涉及到的工具) 访问:http://www.zhuozhengsoft.com/dowm/,从官网下载PageOffice for Java. 步骤二:(配置工程) 1. 解压PageOff ...

  10. [原创]java在线打开PDF文档

    步骤一:(涉及到的工具) 访问:http://www.zhuozhengsoft.com/dowm/,从官网下载PageOffice for Java. 步骤二:(配置工程) 1. 解压PageOff ...

随机推荐

  1. 11.8 消除闪烁(2)(harib08h)

    ps:看书比较急,有错误的地方欢迎指正,不细致的地方我会持续的修改 11.8 消除闪烁(2)(harib08h) 11.7 消除闪烁(1)(harib08g)存在的问题: 鼠标放在计时器上会有 闪烁, ...

  2. 自己动手从零写桌面操作系统GrapeOS系列教程——18.外设和IO

    学习操作系统原理最好的方法是自己写一个简单的操作系统. 一.外设和I/O接口 前面我们介绍过冯·诺依曼结构包含5部分,其中输入设备和输出设备统称为外部设备,简称外设.常见的外设有鼠标.键盘.显示器.硬 ...

  3. java多线程---4 线程同步介绍及不安全案例说明

    java多线程---4 线程同步介绍及不安全案例说明 线程同步 并发: 同一个对象被多个线程同时操作. 处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象,这时候我们就需要线程同步 ...

  4. 实现一个CRDT工具库——LWWReg

    LWWReg LWW Register是一种数据结构,用于存储一个值和一个时间戳,支持读取和写入操作.在写入时,如果新的时间戳比原来的时间戳更大,那么就更新值和时间戳:在读取时,直接返回当前的值.这个 ...

  5. Duplicate File Finder Pro - 重复文件查找器,给你的 Mac 清理出大量磁盘空间

    重复文件查找器 Duplicate File Finder Pro 是一个实用程序,只需3次点击就能在Mac上找到重复的文件.拖放功能和尽可能多的文件夹,你想,然后按下扫描按钮.在一分钟,应用程序将给 ...

  6. 【PWN】初见BROP

    前言|与BROP的相遇 第一次BROP,它让我觉得pwn,或者说网安很妙,也很折磨 在遇到它之前,之前接触的题目都是简单的栈溢出,感觉没有啥有趣的,很简单,找gadget溢出就可以,一切都看得见 可遇 ...

  7. Dapr和Rainbond集成,实现云原生BaaS和模块化微服务开发

    背景 Dapr 是一个开源的分布式应用运行时,帮助开发者构建松耦合的分布式应用程序,具有良好的可扩展性和可维护性.Rainbond 是一款企业级的云原生应用管理平台,提供了丰富的功能和工具,方便开发者 ...

  8. socket 到底是个啥

    哈喽大家好,我是咸鱼 我相信大家在面试过程中或多或少都会被问到这样一个问题:你能解释一下什么是 socket 吗 我记得我当初的回答很是浅显:socket 也叫套接字,用来负责不同主机程序之间的网络通 ...

  9. 基于SqlSugar的开发框架循序渐进介绍(27)-- 基于MongoDB的数据库操作整合

    SqlSugar的开发框架本身主要是基于常规关系型数据库设计的框架,支持多种数据库类型的接入,如SqlServer.MySQL.Oracle.PostgreSQL.SQLite等数据库,非关系型数据库 ...

  10. odoo 开发入门教程系列-QWeb简史

    QWeb简史 到目前为止,我们的房地产模块的界面设计相当有限.构建列表视图很简单,因为只需要字段列表.表单视图也是如此:尽管使用了一些标记,如<group>或<page>,但在 ...