【记录】Python3| 将 PDF 转换成 HTML/XML(✅⭐pdfminer.six)

embedded/2024/10/11 1:15:00/
xmlns="http://www.w3.org/2000/svg" style="display: none;">

本文将会被汇总至 【记录】Python3|2024年 PDF 转 XML 或 HTML 的第三方库的使用方式、测评过程以及对比结果(汇总),更多其他工具请访问该文章查看。


注意!html" title=pdf>pdfminer.six 和 html" title=pdf>pdfminer3k 不是同一个!!!

文章目录

  • PDFMiner.six 使用体验与评估
    • 1 安装指南
    • 2 测试代码
    • 3 测试结果
      • 3.1 转 html 的结果
      • 3.2 转 xml 的结果
    • 4 总体评价:✅⭐

PDFMiner.six 使用体验与评估

Github 阅读:https://github.com/shandianchengzi/PDF2HTML_Samples/blob/main/results/html" title=pdf>pdfminer.six.md
CSDN 阅读:【记录】Python3| 将 PDF 转换成 HTML/XML(✅⭐html" title=pdf>pdfminer.six)

参考:PDF 到 HTML/XML 转换 Python 库 - html" title=pdf>pdfminer.six 入门

1 安装指南

要使用 PDFMiner.six,您可以通过 Python 的包管理工具 pip 进行安装。在命令行中执行以下命令:

pip install html" title=pdf>pdfminer.six

2 测试代码

为了帮助您更好地理解 PDFMiner.six 的用法,我提供了一个测试代码示例。您可以在以下 GitHub 仓库中找到相关代码和样本文件:https://github.com/shandianchengzi/PDF2HTML_Samples/tree/main/python_samples/test_html" title=pdf>pdfminer_six。

其目录结构如是:

在这里插入图片描述

3 测试结果

html__41">3.1 转 html 的结果

实质就是把每一行转成 span 元素,没有任何节点嵌套等格式。

PDFMiner.six 在将 PDF 转换为 HTML 时,主要将每一行文本转换为 <span> 元素,而不包含任何节点嵌套或格式化信息。这种简单的转换方式使得生成的 HTML 缺乏结构和语义信息。

在测试过程中,我尝试转换了一些包含纯表格和文字+表格的页面,并观察了转换结果。纯表格页面的转换结果并不理想,生成的 HTML 结构混乱,难以阅读。而文字+表格的页面转换结果相对较好,但仍存在一些问题,如表格结构不完整、文字排版混乱等。


纯表格页面的结果(看到结果的我都笑了,这什么玩意):

在这里插入图片描述

文字+表格的页面的结果:

在这里插入图片描述

xml__59">3.2 转 xml 的结果

实质就是把每一个字转成 text 元素,没有任何节点嵌套等格式。

与 HTML 转换类似,PDFMiner.six 在将 PDF 转换为 XML 时,也是将每个字符转换为 <text> 元素,而不包含任何节点嵌套或格式化信息。这使得生成的 XML 文件非常庞大且难以阅读。

在测试过程中,我尝试查看转换后的 XML 文件,但由于其结构过于复杂且每个节点只是一个字母或符号,因此很难直接阅读和理解。通过在线 XML 元素查看器查看时,可以更加清晰地看到每个节点的结构和内容,但仍然需要一定的耐心和技巧。


众所周知,xml 文件是无法直接查看的,它只是个方便记录数据的、和 html 长得差不多但是小很多的文件。

文字+表格的页面的结果(直接查看结果,实话说看到这里我就知道凉透了):

在这里插入图片描述

文字+表格的页面的结果(通过在线 XML 元素查看器查看,简直了。。每个节点只是一个字母或者符号):

在这里插入图片描述

4 总体评价:✅⭐

能跑,没用。

经过测试和使用体验,我认为 PDFMiner.six 的表现并不理想。虽然它能够成功安装并运行,但生成的 HTML 和 XML 结果存在较多问题,如结构混乱、缺乏语义信息等。

经过进一步了解,我发现 PDFMiner.six 是专为 Python 2 设计的工具,而在 Python 3 中的支持并不完善。这可能是导致其表现不佳的主要原因之一。详见 https://pypi.org/project/html" title=pdf>pdfminer/

Warning: Starting from version 20191010, PDFMiner supports Python 3 only. For Python 2 support, check out html" title=pdf>pdfminer.six. https://pypi.org/project/html" title=pdf>pdfminer/

因此,我建议在使用 PDFMiner.six 时,需要注意以下几点:

  1. 确认您的 Python 版本是否为 2.x,否则不如用别的工具;
  2. 如果需要转换包含复杂结构和格式的 PDF 文件,可能需要考虑使用其他更成熟的工具或库;
  3. 在进行转换之前,最好先对 PDF 文件进行一些预处理操作,如拆分页面、识别文字等,以提高转换质量。

本文将会被汇总至 【记录】Python3|2024年 PDF 转 XML 或 HTML 的第三方库的使用方式、测评过程以及对比结果(汇总),更多其他工具请访问该文章查看。


本账号所有文章均为原创,欢迎转载,请注明文章出处:https://blog.csdn.net/qq_46106285/article/details/138095328。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。


http://www.ppmy.cn/embedded/26296.html

相关文章

IP 端口号

IP && 端口号 一: IP二:端口号2.1:知名端口号2.2:端口号的重复问题业务端口:管理端口调试端口 2.3:如何确认端口号是否被其他进程占用??? 一: IP IP地址是网络层提供的概念,通过IP地址我们可以确定主机. 二:端口号 端口号是传输层提供的概念 一个端口号对应一个进…

【Linux】进程地址空间

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;Linux &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵&#xff0c;希望大佬指点一二 如果文章对…

ubuntu下安装配置python3.11

方案1 添加仓库&#xff1a; $ sudo add-apt-repository ppa:deadsnakes/ppa $ sudo apt update $ sudo apt install python3.11然后查看有多少个python版本已经安装了&#xff1a; ls -l /usr/bin/python*python2.7,python 3.8 ,python 3.11. 然后&#xff0c;设置系统默认…

图片怎样变小尺寸?一键修改图片大小的方法

不管是平时的工作还是学习中&#xff0c;我们经常需要根据不同的需求调整图片尺寸&#xff0c;无论是在社交媒体上分享照片&#xff0c;还是在网页设计中使用图片。对于一些电脑小白来说修改图片尺寸可能会变得有些困难。但是现在有许多在线工具可以帮助我们简单快速地将图片改…

TCP/IP和HTTP协议

TCP/IP OSI 七层模型在提出时的出发点是基于标准化的考虑&#xff0c;而没有考虑到具体的市场需求&#xff0c;使得该模型结构复杂&#xff0c;部分功能冗余&#xff0c;因而完全实现 OSI 参考模型的系统不多。而 TCP/IP 参考模型直接面向市场需求&#xff0c;实现起来也比较…

互联网的路由选择协议

一、内部网关协议RIP &#xff08;1&#xff09;概述 RIP是一种分布式的、基于距离向量的路由选择协议。 RIP认为一个好的路由就是它通过的路由器的数目少&#xff0c;即“距离短”RIP允许一条路径最多只能包含15个路由器 &#xff08;2&#xff09;RIP的特点 和谁交换信息…

MySQL基础学习(待整理)

MySQL 简介 学习路径 MySQL 安装 卸载预安装的mariadb rpm -qa | grep mariadb rpm -e --nodeps mariadb-libs安装网络工具 yum -y install net-tools yum -y install libaio下载rpm-bundle.tar安装包&#xff0c;并解压&#xff0c;使用rpm进行安装 rpm -ivh \ mysql-communi…

如何使用Scrapy和Python 3爬取网页

简介 网络爬虫&#xff0c;通常称为网络爬行或网络蜘蛛&#xff0c;是以编程方式浏览一系列网页并提取数据的行为&#xff0c;是处理网络数据的强大工具。 通过使用网络爬虫&#xff0c;您可以挖掘有关一组产品的数据&#xff0c;获取大量文本或定量数据以进行分析&#xff0…