用python提取pdf文字,扫描件提取文字Python
转载:ZXDST chenx6542@foxmail.com(缩写:有一半是花酒)))))))))))))))))
微信官方账号转载请联系微信官方账号:早起Python
这个例子可以学到的知识点:
使用pdf播放器从pdf中提取文本和表格
使用fitz从PDF中提取图像
批量PDF文件的处理之前已经详细解释过了。这包括合并、分割、水印和加密。处理批量PDF文件
详细分析了各线路的原理。这里介绍了很多面向PDF的模块,有些功能不全,代码不如OFFICE三点操作简洁。
今天的PDF图像提取也是如此。所以主要是基于理解,不需要完全掌握代码表示,只要能用就行。
今天的练习资料是年报,里面有很多文字,表格,照片。
一、模块安装
需要安装两个模块。第一个是pdf播放器。
在Windows上调用命令行:
pip安装pdf木材
第二个是fitz,是pymupdf的模块。
在Windows上调用命令行:
pip安装pymupdf
二。PDF文本提取
代码理念:
在PDFplumber中打开pdf文件。
获取指定的页面或遍历每个页面。
使用。extract_text()方法提取当前页面的文本
尝试使用上面的代码提取示例数据第12页上的字符。
导入pdf播放器
file _ path=r c:\ xxxx \ practice . pdf
pdf格式的pdf lumber . open(file _ path ):
page=pdf.pages[11]
print(page.extract_text))
可以导入python-docx,使用Wordfile.add_paragraph()将提取的内容写入word文件。
三。PDF表单提取
提取单个表格的代码与使用。提取_表格()。
请注意。默认情况下,extract_table()读取指定页面上的第一个表。如果当前页面需要读取多个表,请使用。直接提取_表格))
例如,示例文件的第13页包含两个表。使用。extract_table(和。extract_tables)来观察输出。
导入pdf播放器
file _ path=r c:\ xxxx \ practice . pdf
pdf格式的pdf lumber . open(file _ path ):
page=pdf.pages[12]
print(page.extract_table))
是嵌套列表,熟悉这种格式的人会明白,你可以使用pandas或者遍历嵌套列表,使用openpyxl sheet.append (list)写入Excel文件。
导入pdf播放器
file _ path=r c:\ xxxx \ practice . pdf
pdf格式的pdf lumber . open(file _ path ):
page=pdf.pages[12]
print(page.extract_tables()。extract_tables()提取当前页面中的所有表格会生成一个三级嵌套列表,第一级列表代表每个表格。
四。PDF图像提取
至于图像提取,目前还没有能100%提取图像的模块。这里只介绍基于fitz模块的代码。基本思路是正则。找到图像并输出。
导入fitz
进口re
导入操作系统
file _ path=r c:\ XXX \ practice . pdf
Dir_path=rC:\xxx #用于存储图像的文件夹
efpdf2pic(path,pic_path):
checkXO=r/Type(?=*/XObject(
checkIM=r /子类型?=*/Image(
pdf=fitz.open(路径)
lenXREF=pdf。_getXrefLength(
imgcount=0
forIinrange(1,lenXREF):
text=pdf。_getxrefstring(I))
isxobject=re.search(checkxo,text)))))))))))))).
isimage=re.search(checkim,text)))))))))))))).
ifnotisxobjectornotisimage:
继续
imgcount=1
pix=fitz.pixmap(pdf,I)).
new_name=fimg_{imgcount}。巴布亚新几内亚
如果图号为5:
pix . write png(OS . path . join)pic _ path,new_name))
否则:
pix0=fitz.pixmap(fitz.csRGB,pix)).
pix 0 . write png(OS . path . join)pic _ path,new_name))
pix0=无
pix=无
pdf2pic(文件路径,目录路径).
图像提取成功,但PDF中的图像比这多。欢迎有兴趣的读者交流。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。