Python使用pdfminer库解析pdf得到的一大堆CID和数字如何处理

2023-10-10 20:20

本文主要是介绍Python使用pdfminer库解析pdf得到的一大堆CID和数字如何处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这个是我识别pdf的代码

from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.layout import LTTextBox, LAParams
from pdfminer.converter import PDFPageAggregator
from loguru import logger
import repdf_path = r'C:\Users\17875\Desktop\100159_12E1X80009000024_A_01_05.pdf'
# 打开pdf文件
fp = open(pdf_path, 'rb')# 从文件句柄创建一个pdf解析对象
parser = PDFParser(fp)
# 创建pdf文档对象,存储文档结构
document = PDFDocument(parser)# 创建一个pdf资源管理对象,存储共享资源
rsrcmgr = PDFResourceManager()laparams = LAParams()# 创建一个device对象
device = PDFPageAggregator(rsrcmgr, laparams=laparams)# 创建一个解释对象
interpreter = PDFPageInterpreter(rsrcmgr, device)# 处理包含在文档中的每一页
for page in PDFPage.create_pages(document):interpreter.process_page(page)layout = device.get_result()for x in layout:# 获取文本对象if isinstance(x, LTTextBox):text = x.get_text().strip()logger.info(text)
fp.close()

可是得到的结果是一大堆cid和数字
在这里插入图片描述

解决方法

使用chr(int(123))

from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.layout import LTTextBox, LAParams
from pdfminer.converter import PDFPageAggregator
from loguru import logger
import re# pdf_path = r'C:\Users\17875\Desktop\众成资料\日本\pdf日本\体外试剂\100159_12E1X80009000024_A_01_05.pdf'
pdf_path = r'C:\Users\17875\Desktop\众成资料\日本\pdf日本\体外试剂\100148_14A2X00001FIB001_A_F1_05.pdf'
# 打开pdf文件
fp = open(pdf_path, 'rb')# 从文件句柄创建一个pdf解析对象
parser = PDFParser(fp)
# 创建pdf文档对象,存储文档结构
document = PDFDocument(parser)# 创建一个pdf资源管理对象,存储共享资源
rsrcmgr = PDFResourceManager()laparams = LAParams()# 创建一个device对象
device = PDFPageAggregator(rsrcmgr, laparams=laparams)# 创建一个解释对象
interpreter = PDFPageInterpreter(rsrcmgr, device)# 处理包含在文档中的每一页
for page in PDFPage.create_pages(document):interpreter.process_page(page)layout = device.get_result()for x in layout:# 获取文本对象if isinstance(x, LTTextBox):text = x.get_text().strip()if 'cid' in text:# 找到cid后面的数字number = re.findall(r'\d+', text)result = [chr((int(i))) for i in number]logger.info(result)logger.info(text)
fp.close()

结果如下:
在这里插入图片描述
但是还不是很准确,假如有更好的方法,请分享一下

这篇关于Python使用pdfminer库解析pdf得到的一大堆CID和数字如何处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/182837

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do