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

2024-05-01 13:36

本文主要是介绍【记录】Python3| 将 PDF 转换成 HTML/XML(✅⭐pdfminer.six),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


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


注意!pdfminer.six 和 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/pdfminer.six.md
CSDN 阅读:【记录】Python3| 将 PDF 转换成 HTML/XML(✅⭐pdfminer.six)

参考:PDF 到 HTML/XML 转换 Python 库 - pdfminer.six 入门

1 安装指南

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

pip install pdfminer.six

2 测试代码

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

其目录结构如是:

在这里插入图片描述

3 测试结果

3.1 转 html 的结果

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

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

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


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

在这里插入图片描述

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

在这里插入图片描述

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/pdfminer/

Warning: Starting from version 20191010, PDFMiner supports Python 3 only. For Python 2 support, check out pdfminer.six. https://pypi.org/project/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。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

这篇关于【记录】Python3| 将 PDF 转换成 HTML/XML(✅⭐pdfminer.six)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/951826

相关文章

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

Vue3使用router,params传参为空问题

《Vue3使用router,params传参为空问题》:本文主要介绍Vue3使用router,params传参为空问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录vue3使用China编程router,params传参为空1.使用query方式传参2.使用 Histo

详解如何通过Python批量转换图片为PDF

《详解如何通过Python批量转换图片为PDF》:本文主要介绍如何基于Python+Tkinter开发的图片批量转PDF工具,可以支持批量添加图片,拖拽等操作,感兴趣的小伙伴可以参考一下... 目录1. 概述2. 功能亮点2.1 主要功能2.2 界面设计3. 使用指南3.1 运行环境3.2 使用步骤4. 核

CSS Padding 和 Margin 区别全解析

《CSSPadding和Margin区别全解析》CSS中的padding和margin是两个非常基础且重要的属性,它们用于控制元素周围的空白区域,本文将详细介绍padding和... 目录css Padding 和 Margin 全解析1. Padding: 内边距2. Margin: 外边距3. Padd

CSS will-change 属性示例详解

《CSSwill-change属性示例详解》will-change是一个CSS属性,用于告诉浏览器某个元素在未来可能会发生哪些变化,本文给大家介绍CSSwill-change属性详解,感... will-change 是一个 css 属性,用于告诉浏览器某个元素在未来可能会发生哪些变化。这可以帮助浏览器优化

CSS去除a标签的下划线的几种方法

《CSS去除a标签的下划线的几种方法》本文给大家分享在CSS中,去除a标签(超链接)的下划线的几种方法,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧... 在 css 中,去除a标签(超链接)的下划线主要有以下几种方法:使用text-decoration属性通用选择器设置:使用a标签选择器,将tex

前端高级CSS用法示例详解

《前端高级CSS用法示例详解》在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交互和动态效果的关键技术之一,随着前端技术的不断发展,CSS的用法也日益丰富和高级,本文将深... 前端高级css用法在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown