PDFPlumber解析PDF文本报错:AssertionError: (‘Unhandled’, 6)

2024-03-10 14:12

本文主要是介绍PDFPlumber解析PDF文本报错:AssertionError: (‘Unhandled’, 6),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

      • 1、问题描述
      • 2、问题原因
      • 3、问题解决



1、问题描述


今天在使用PDFPlumber模块提取PDF文本时extract_text()方法报错,报错内容如下:

Traceback (most recent call last):......File "F:\Python\...\site-packages\pdfminer\pdffont.py", line 1091, in __init__self.unicode_map = ttf.create_unicode_map()File "F:\Python\...\site-packages\pdfminer\pdffont.py", line 826, in create_unicode_mapassert False, str(("Unhandled", fmttype))
AssertionError: ('Unhandled', 6)

报错代码如下:

import pdfplumberwith pdfplumber.open(rf'F:\...\file.pdf') as pdf:for page in pdf.pages:print(page.extract_text())

2、问题原因


经查找原因,最终确定可能是PDF文件本身的原因,具体可见这篇文章:https://github.com/jsvine/pdfplumber/discussions/994?sort=new

ChatGPT则认这种错误是因为库内部遇到了某种它无法处理的情况,ChatGPT给出的解决方案如下:

1) 更新PDFPlumber

pip install --upgrade pdfplumber

2) 检查PDF文件

确认PDF文件没有损坏,并且是文本格式的PDF而不是扫描的图像

3) 使用其他方法

可以尝试使用extract_words()extract_tables()等其他方法,这取决于你需要提取的内容类型

4) 捕获异常

添加异常处理,这样即使遇到错误也不会导致程序崩溃

try:text = page.extract_text()
except AssertionError as e:print(e)text = None

5) 尝试其他库

可以考虑使用其他PDF处理库,如PyPDF2或PyMuPDF等

在尝试了ChatGPT的一些建议后,确定可能是PDF本身的原因,因此考虑使用其他库

3、问题解决


经过尝试,最终发现PyMuPDF库可以解析使用:

import fitzwith fitz.open(rf'F:\...\file.pdf') as doc:for page in doc.pages():print(page.get_text())

看来是PDF本身的原因,我们的PDF可能已经损坏



这篇关于PDFPlumber解析PDF文本报错:AssertionError: (‘Unhandled’, 6)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

Java Scanner类解析与实战教程

《JavaScanner类解析与实战教程》JavaScanner类(java.util包)是文本输入解析工具,支持基本类型和字符串读取,基于Readable接口与正则分隔符实现,适用于控制台、文件输... 目录一、核心设计与工作原理1.底层依赖2.解析机制A.核心逻辑基于分隔符(delimiter)和模式匹

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?

Java高效实现Word转PDF的完整指南

《Java高效实现Word转PDF的完整指南》这篇文章主要为大家详细介绍了如何用Spire.DocforJava库实现Word到PDF文档的快速转换,并解析其转换选项的灵活配置技巧,希望对大家有所帮助... 目录方法一:三步实现核心功能方法二:高级选项配置性能优化建议方法补充ASPose 实现方案Libre

99%的人都选错了! 路由器WiFi双频合一还是分开好的专业解析与适用场景探讨

《99%的人都选错了!路由器WiFi双频合一还是分开好的专业解析与适用场景探讨》关于双频路由器的“双频合一”与“分开使用”两种模式,用户往往存在诸多疑问,本文将从多个维度深入探讨这两种模式的优缺点,... 在如今“没有WiFi就等于与世隔绝”的时代,越来越多家庭、办公室都开始配置双频无线路由器。但你有没有注

Python中的sort()和sorted()用法示例解析

《Python中的sort()和sorted()用法示例解析》本文给大家介绍Python中list.sort()和sorted()的使用区别,详细介绍其参数功能及Timsort排序算法特性,涵盖自适应... 目录一、list.sort()参数说明常用内置函数基本用法示例自定义函数示例lambda表达式示例o

使用Python提取PDF大纲(书签)的完整指南

《使用Python提取PDF大纲(书签)的完整指南》PDF大纲(Outline)​​是PDF文档中的导航结构,通常显示在阅读器的侧边栏中,方便用户快速跳转到文档的不同部分,大纲通常以层级结构组织,包含... 目录一、PDF大纲简介二、准备工作所需工具常见安装问题三、代码实现完整代码核心功能解析四、使用效果控

SpringBoot加载profile全面解析

《SpringBoot加载profile全面解析》SpringBoot的Profile机制通过多配置文件和注解实现环境隔离,支持开发、测试、生产等不同环境的灵活配置切换,无需修改代码,关键点包括配置文... 目录题目详细答案什么是 Profile配置 Profile使用application-{profil

MySQL的触发器全解析(创建、查看触发器)

《MySQL的触发器全解析(创建、查看触发器)》MySQL触发器是与表关联的存储程序,当INSERT/UPDATE/DELETE事件发生时自动执行,用于维护数据一致性、日志记录和校验,优点包括自动执行... 目录触发器的概念:创建触www.chinasem.cn发器:查看触发器:查看当前数据库的所有触发器的定