惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
Y
Y Combinator Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
M
MIT News - Artificial intelligence
GbyAI
GbyAI
A
About on SuperTechFans
T
The Blog of Author Tim Ferriss
雷峰网
雷峰网
Blog — PlanetScale
Blog — PlanetScale
J
Java Code Geeks
IT之家
IT之家
Microsoft Azure Blog
Microsoft Azure Blog
V
V2EX
爱范儿
爱范儿
N
Netflix TechBlog - Medium
U
Unit 42
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
博客园 - 叶小钗
G
Google Developers Blog
Jina AI
Jina AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The GitHub Blog
The GitHub Blog
腾讯CDC

博客园 - E-iceblue

Excel 列转行/行列转换全指南:从 4 种常见解法到 Python 批量自动化 Python 实现 Excel 转 Markdown,支持工作表、单元格区域和批量处理 为 Excel 工作簿和工作表设置密码保护【Python教程】 Python 实现 Markdown 转 Word、PDF:从转换到页面设置 PDF 无法复制文字怎么办?常见原因分析及解决方法 Python 办公自动化:将 PowerPoint (PPT/PPTX) 转换为 PDF 【全面指南】 使用 Python 在 Excel 中添加页眉页脚(文本/图片/奇偶页差异设置) Python 拆分 Excel 文件:使用 Spire.XLS 实现按工作表、行、列和条件拆分 如何使用 Python 快速将 Excel 转换为 XML 文件 Python 办公自动化:Word 文档加密与权限控制实战 在 Python 中快速锁定 Excel 单元格与行列 使用 Python 在 Word 文档中添加或删除文本框 如何使 PDF 可编辑 - Python 教程详解 将 Excel 表格插入 Word 文档的三种实用方案(Python 自动化) Python 办公自动化:如何轻松调整 Word/PDF 页面大小为 Legal 尺寸 数字签名 vs 电子签名:区别与如何在文件中插入数字签名 Python 教程:快速复制 Excel 工作表 如何对比 Excel 两列数据的不同:从基础操作到 Python 自动化 如何提取 Word 文档中的表格并导出为 Excel(Python 教程) 使用 Python 在 PowerPoint 中添加或移除背景图和背景颜色 在 Java 中使用 Spire.PDF 合并 PDF 文档(含加密与压缩处理) 在 Python 中自动化转化 Markdown 为 HTML 【详细教程】 Python 控制 PDF 页面大小、页边距、页面方向与缩放 Python 办公自动化:快速将 HTML 转换为 PDF 格式 在 Python 中给 PDF 设置背景图或背景色 在 Python 中转换 XML 为 PDF 文档:基础转换与转换设置 在 Python 中对比 Word 文档:自动生成修订报告【教程向】 Excel 删除空白行的 5 种方法 【手动与 Python 自动化】 删除 Excel 表格中的重复行 【4 种实用方法】 从纯文本到精美文档:TXT 转 PDF 的三种高效方案
使用 Python 实现 PDF 到 HTML 的转换【含代码详解】
E-iceblue · 2026-07-31 · via 博客园 - E-iceblue

PDF 文件因其稳定的排版效果,长期以来一直是文档共享、归档和分发的常用格式。但在实际开发过程中,当我们需要提取 PDF 内容、将文档嵌入网页,或者对文档进行二次处理时,PDF 固定的页面结构往往会增加处理难度。

相比之下,HTML 作为 Web 环境中的标准文档格式,不仅能够被浏览器直接解析,还具有良好的可访问性和搜索能力。因此,将 PDF 转换为 HTML 可以帮助开发者更方便地展示、检索和利用文档内容。

借助 Python 灵活易用的开发方式,我们可以快速实现 PDF 到 HTML 的自动化转换。本教程将结合 Spire.PDF for Python,介绍如何在 Python 环境中完成 PDF 转 HTML,主要包括以下内容:

  • 将 PDF 转换为单个 HTML 文件;
  • 批量转换多个 PDF 文件为 HTML;
  • 根据需求设置 HTML 输出效果,例如分离图片资源、拆分多个 HTML 文件等。

你可以通过 pip 快速安装 Spire.PDF for Python:

pip install Spire.PDF

通过 Python 快速将 PDF 转换为单个 HTML 文件

在 Spire.PDF for Python 中,PdfDocument 类用于表示 PDF 文档。通过该类中的 LoadFromFile() 方法可以加载 PDF 文件,再使用 SaveToFile() 方法将文档保存为 HTML 格式,即可完成 PDF 到 HTML 的转换。

如果 PDF 文档结构比较简单,不需要额外调整输出效果,那么直接转换是最快捷的方式。整个过程只需要创建 PdfDocument 对象、加载 PDF 文件并保存为 HTML 三个步骤。

下面代码展示了如何使用 Python 将 PDF 文件直接转换为 HTML:

from spire.pdf.common import *
from spire.pdf import *

# 创建 PdfDocument 对象
doc = PdfDocument()

# 加载 PDF 文件
doc.LoadFromFile("示例.pdf")

# 将 PDF 转换为 HTML
doc.SaveToFile("output/HTML/PDF转HTML.html", FileFormat.HTML)
doc.Close()

转换单个 PDF 文件为 HTML

转换完成后,生成的 HTML 文件会保留 PDF 中的文本、图片以及页面元素,并以单个 HTML 文件形式保存,适用于普通文档展示和简单网页集成场景。

通过 Python 批量将多个 PDF 转换为 HTML

在实际应用中,我们通常需要处理多个 PDF 文件,例如批量迁移旧文档、构建在线文档系统,或者将企业资料转换为网页格式。如果逐个打开 PDF 文件进行转换,不仅操作繁琐,也不利于自动化处理。此时,可以结合 Python 的文件遍历能力,批量读取指定文件夹中的 PDF 文件,并利用 Spire.PDF 完成自动转换。

下面示例会遍历目标文件夹中的所有 PDF 文件,并将每个 PDF 转换为对应的 HTML 文件:

import os
from spire.pdf.common import *
from spire.pdf import *

# 设置 PDF 文件所在目录
inputFolder = "input/"

# 设置 HTML 输出目录
outputFolder = "output/HTML/"

# 遍历文件夹中的文件
for fileName in os.listdir(inputFolder):

    # 判断是否为 PDF 文件
    if fileName.endswith(".pdf"):

        # 创建 PdfDocument 对象
        doc = PdfDocument()

        # 加载 PDF 文件
        doc.LoadFromFile(inputFolder + fileName)

        # 设置输出 HTML 文件名
        htmlName = fileName.replace(".pdf", ".html")

        # 转换为 HTML
        doc.SaveToFile(outputFolder + htmlName, FileFormat.HTML)

        # 释放资源
        doc.Close()

print("PDF 批量转换 HTML 完成")

批量转换 PDF 为 HTML 文件

转换设置:控制 HTML 输出效果

在实际项目中,PDF 转 HTML 往往不仅仅是简单转换。例如:

  • 网页展示时希望减少 HTML 文件体积;
  • 需要单独管理 PDF 中的图片资源;
  • 大型 PDF 文档需要拆分成多个 HTML 页面。

针对这些需求,Spire.PDF 提供了 HTML 转换选项,可以通过 ConvertOptions 属性下的 SetPdfToHtmlOptions() 方法调整转换效果。

该方法支持以下参数:

参数 说明
useEmbeddedSvg(bool) 是否将 SVG 内容嵌入 HTML 文件
useEmbeddedImg(bool) 是否将图片嵌入 HTML 文件
maxPageOneFile(int) 设置单个 HTML 文件包含的最大 PDF 页数
useHighQualityEmbeddedSvg(bool) 是否使用高质量 SVG 图片

通过合理配置这些参数,可以根据不同使用场景生成更加适合的 HTML 文件。

将 PDF 转换为不嵌入图片的 HTML

默认情况下,转换后的 HTML 文件会包含 PDF 中的图片资源。如果希望 HTML 文件结构更加清晰,或者需要单独处理图片文件,可以关闭资源嵌入功能。

通过设置 useEmbeddedSvg 参数为 False,PDF 中的图片和 CSS 文件会被单独保存,HTML 文件仅负责引用这些资源。这种方式更适合后续修改网页样式或单独管理图片资源的场景。

from spire.pdf.common import *
from spire.pdf import *

# 创建 PdfDocument 对象
doc = PdfDocument()

# 加载 PDF 文件
doc.LoadFromFile("示例.pdf")

# 设置转换选项,不嵌入 SVG
doc.ConvertOptions.SetPdfToHtmlOptions(False)

# 转换为 HTML
doc.SaveToFile("output/HTML/PDF转不嵌入图片HTML.html", FileFormat.HTML)

# 释放资源
doc.Close()

将 PDF 拆分转换为多个 HTML 文件

对于页数较多的 PDF 文档,如果全部转换为一个 HTML 文件,可能导致文件体积过大,影响页面加载速度。此时,可以使用 maxPageOneFile 参数控制每个 HTML 文件包含的 PDF 页面数量。例如,将该参数设置为 1,即可实现每一页 PDF 转换为一个独立的 HTML 文件。

需要注意的是,该功能需要在关闭 SVG 嵌入的情况下使用。

from spire.pdf.common import *
from spire.pdf import *

# 创建 PdfDocument 对象
doc = PdfDocument()

# 加载 PDF 文件
doc.LoadFromFile("示例.pdf")

# 设置转换选项:
# 不嵌入 SVG、不嵌入图片,每个 HTML 文件包含 1 页 PDF
doc.ConvertOptions.SetPdfToHtmlOptions(False, False, 1, False)

# 转换 PDF
doc.SaveToFile("output/HTML/PDF拆分HTML.html", FileFormat.HTML)

# 释放资源
doc.Close()

总结

将 PDF 转换为 HTML 可以有效提升文档内容的可访问性和可利用性。在本文中,我们介绍了如何使用 Spire.PDF for Python 实现 PDF 到 HTML 的转换,包括直接转换单个 PDF 文件、批量处理多个 PDF 文档,以及通过转换选项控制 HTML 输出效果。

在实际开发中,可以根据业务需求选择合适的转换方式:简单场景下直接转换即可快速生成 HTML;面对大量文档时,可以结合 Python 文件处理能力实现批量转换;如果需要优化网页展示效果,则可以通过设置图片嵌入、页面拆分等参数调整输出结果。

借助 Spire.PDF for Python,开发者无需编写复杂的 PDF 解析逻辑,只需调用简单 API,即可高效完成 PDF 到 HTML 的自动化转换。