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

news2024/11/21 0:37:16

本文将会被汇总至 【记录】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。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

闪存存储和制造技术概述

闪存存储技术 引言 性能由高到低排序&#xff1a;SLC -> MLC -> TLC -> QLC 根据这个排序读写速度也越来越低&#xff0c;价格越来越便宜 1. SLC SLC&#xff08;Single-Level Cell&#xff0c;单层单元&#xff09;&#xff1a; SLC 闪存具有最高的性能、耐用性和可…

linus下Anaconda创建虚拟环境pytorch

一、虚拟环境 1.创建 输入下面命令 conda create -n env_name python3.8 输入y 2.激活环境 输入 conda activate env_name 二、一些常用的命令 在Linux的控制平台 切换到当前的文件夹 cd /根目录/次目录 查看conda目录 conda list 查看pip目录 pip list查看历史命…

三. Django项目之电商购物商城 -- 校验用户名 , 数据入库

Django项目之电商购物商城 – 校验用户名 , 数据入库 需要开发文档和前端资料的可私聊 一. 路由匹配获得用户名 在注册时 , 用户输入用户名 , 通过ajax请求发送到服务器 , 在路由中设置对应url , 响应视图 , 将用户输入的用户名传入视图 , 与数据库进行校验检查用户名是否重…

安全免费的远程软件有哪些?

远程访问软件&#xff0c;又称远程协助软件或远程控制软件&#xff0c;正在迅速走红。这类软件无论您身处何地&#xff0c;都能轻松实现远程访问和计算机控制。对于个人而言&#xff0c;远程控制工具使工作更加灵活、便捷&#xff1b;而对企业而言&#xff0c;远程访问软件也是…

【webrtc】MessageHandler 1: 基于线程的消息处理:以10毫秒处理音频为例

基于m98 G:\CDN\rtcCli\m98\src\audio\null_audio_poller.h分发的消息由MessageHandler 类通过其抽象接口OnMessage 实现处理 NullAudioPoller NullAudioPoller 是一个处理audio的消息的分发器 poll 启动:

spring boot运行过程中动态加载Controller

1.被加载的jar代码 package com.dl;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication public class App {public static void main(String[] args) {SpringApplication.run(A…

自学Vue3 Day2

一、组合式Api组件通信 1.父与子之间 父传子&#xff1a;父导入子组件&#xff0c;定义好数据&#xff0c;子组件用props接收&#xff0c;这里defineProps底层本质还是props. 注意模板渲染过程不需要写props 子传 父&#xff1a; 2.模版引用&#xff08;ref&#xff09;和组…

学习VUE2第6天

一.请求拦截器 可以节流&#xff0c;防止多次点击请求 toast是单例 二.前置路由守卫 在Vue.js中&#xff0c;前置路由守卫是指在路由转换实际发生之前执行的钩子函数。这是Vue Router&#xff08;Vue.js官方的路由管理器&#xff09;提供的一种功能&#xff0c;允许开发者在用…

Django后台项目开发实战四

用户可以浏览工作列表以及工作详情 第四阶段 在 jobs 文件夹下创建 templates 文件夹&#xff0c;在里面创建 base.html 网页&#xff0c;内容如下 <!-- base.html --> <div style"text-align:center;"><h1 style "margin:auto; width:50%;&…

DS高阶:图论基础知识

一、图的基本概念及相关名词解释 1.1 图的基本概念 图是比线性表和树更为复杂且抽象的结&#xff0c;和以往所学结构不同的是图是一种表示型的结构&#xff0c;也就是说他更关注的是元素与元素之间的关系。下面进入正题。 图是由顶点集合及顶点间的关系组成的一种数据结构&…

基于网络爬虫技术的网络新闻分析参考论文(论文 + 源码)

【免费】基于网络爬虫技术的网络新闻分析系统.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89248815 基于网络爬虫技术的网络新闻分析 摘 要 自从大数据的概念被提出后&#xff0c;互联网数据成为了越来越多的科研单位进行数据挖掘的对象。网络新闻数据占据了…

EasyRecovery2024汉化版电脑数据恢复软件下载

EasyRecovery是一款功能强大的数据恢复软件&#xff0c;其主要功能包括但不限于以下几点&#xff1a; 硬盘数据恢复&#xff1a;能够扫描本地计算机中的所有卷&#xff0c;建立丢失和被删除文件的目录树&#xff0c;实现硬盘格式化、重新分区、误删数据、重建RAID等硬盘数据恢…

RTSP,RTP,RTCP

机器学习 Machine Learning&#xff08;ML&#xff09; 深度学习&#xff08;DL&#xff0c;Deep Learning&#xff09; CV计算机视觉&#xff08;computer vision&#xff09; FFMPEG&#xff0c;MPEG2-TS,H.264,H.265,AAC rstp,rtp,rtmp,webrtc onvif,gb28181 最详细的音…

数智新重庆 | 推进信号升格 打造算力山城

2024年&#xff0c;是实现“十四五”规划目标任务的关键一年&#xff0c;高质量的5G网络、强大的AI能力作为新质生产力的重要组成部分&#xff0c;将有效赋能包括制造业在内的千行万业数字化化、智能化、绿色化转型升级&#xff0c;推动融合应用新业态、新模式蓬勃兴起&#xf…

上传jar到github仓库,作为maven依赖存储库

记录上传maven依赖包到github仓库问题 利用GitHubPackages作为依赖的存储库踩坑1 仓库地址问题踩坑2 Personal access tokens正确姿势一、创建一个普通仓库&#xff0c;比如我这里是fork的腾讯Shadow到本地。地址是&#xff1a;https://github.com/dhs964057117/Shadow二、生成…

Postgresql 从小白到高手 十一 :数据迁移ETL方案

文章目录 Postgresql 数据迁移ETL方案1、Pg 同类型数据库2 、Pg 和 不同数据库 Postgresql 数据迁移ETL方案 1、Pg 同类型数据库 备份 : pg_dump -U username -d dbname -f backup.sql插入数据&#xff1a; psql -U username -d dbname -f backup.sqlpg_restore -U username…

31.Gateway网关-跨域问题

跨域 1.域名不同&#xff1a;www.baidu.com和www.taobao.com,www.taobao.org 2.域名相同&#xff0c;端口不同。localhost:8080和localhost:8081 跨域问题 浏览器禁止请求的发起者与服务端发生跨域ajax请求&#xff0c;请求被浏览器拦截的问题。 解决方案 CORS 浏览器询…

实操——使用uploadify插件(php版和Java版) 与 Dropzone.js插件分别实现附件上传

实操——使用uploadify插件&#xff08;php版和Java版&#xff09;与 Dropzone.js插件分别实现附件上传 1. 使用uploadify插件上传1.1 简介1.1.1 简介1.1.2 参考GitHub 1.2 后端PHP版本的uploadify1.2.1 下载项目的目录结构1.2.2 测试看界面效果1.2.3 附页面代码 和 PHP代码 1.…

操作DOM:性能优化之道

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【webrtc】MessageHandler 3: 基于线程的消息处理:以sctp测试为例

消息处理可以用于模拟发包处理G:\CDN\rtcCli\m98\src\net\dcsctp\socket\dcsctp_socket_network_test.cc 这个实现中,onMessage还是仅对了一种消息进行处理,就是接收则模式下,打印带宽。当然,可能程序有多个消息,分别在不同的onmessage中执行?SctpActor:以一个恒定的速率…