从PDF文件中提取信息对于数据处理和分析至关重要,同时提取出的文本或图片也可用于其他项目。在Python中,我们可以通过使用Spire.PDF for Python这个第三方库来提取PDF文件中的文本和图片。
要安装Spire.PDF for Python,你可以使用pip命令进行安装。具体命令如下。
有关如何在VS Code中安装Spire.PDF for Python的详细教程,可以参考相关资料。
Spire.PDF for Python提供了PdfPageBase.ExtractText()方法来提取PDF页面中的文本。你可以根据需求选择提取单页文本或遍历所有页面提取整个PDF的文本。以下是一个完整的Python代码示例。
如果你需要提取PDF页面中特定区域的文本,你可以使用PdfPageBase.ExtractText(RectangleF rectangleF)方法并指定矩形范围。以下是相应的Python代码。
Spire.PDF for Python还提供了PdfPageBase.ExtractImages()方法来提取PDF文件中的图片。以下是如何提取PDF文件中所有图片并保存到指定路径的Python代码示例。
2. 如何用Python从大量pdf 中提取表格中的数据进行分析
试试tabula,读取pdf后可转为pandas dataframe进行后续处理,也可直接输出csv文件。
python版本的项目主页,
安装:pip install tabula-py
如果包含中文内容需要修改编码格式:
pd.read_csv("example.csv", encoding="GB18030")
(ps下次提问请先查看万能的stackoverflow:
Extracting table contents from a collection of PDF files)
3. python怎样读取pdf文件的内容
1、首先要下载一个处理pdf的组件pdfminer,网络搜索去官网下载
2、下载完成解压以后,打开cmd进入用命令安装。python setup.py install 进行安装
3、我们来测试一下是否安装成功了,引入这个模块,运行一下代码,没有报错就说明安装成功了
4、官网有文档也有代码示例
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfpage import PDFTextExtractionNotAllowed
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfdevice import PDFDevice
fp = open('mypdf.pdf', 'rb')
#创建一个PDF文档解析器对象
parser = PDFParser(fp)
#创建一个PDF文档对象存储文档结构
#提供密码初始化,没有就不用传该参数
document = PDFDocument(parser, password)
#检查文件是否允许文本提取
if not document.is_extractable:
raise PDFTextExtractionNotAllowed
#创建一个PDF资源管理器对象来存储共享资源
rsrcmgr = PDFResourceManager()
#创建一个pdf设备对象
device = PDFDevice(rsrcmgr)
#创建一个PDF解析器对象
interpreter = PDFPageInterpreter(rsrcmgr, device)
#处理文档当中的每个页面
for page in PDFPage.create_pages(document):
interpreter.process_page(page)
5、我新建一个pdf,新输入一些内容
6、运行一下代码即可
4. Python解析PDF表格——PDFPlumber vs Camelot
题图来自 Camelot: List o’ 10 Intriguing Mythical Places
为获取LEED认证项目的评分表明细,可念带以从USGBC的项目页面上爬取,或者从pdf格式的项目评分表中解析得到。以 重庆某LEED EM:OB v2009 Gold项目 为例,USGBC上公布的 LEED项目得分表 其格式并不统一,利用XPath爬取后需要进一步清洗处理。相对而言,LEED项目所对应的 项目评分表PDF文件 的数据更为规范完整。因此考虑尝试解析出PDF文件中的表格,以便后续分析。
Python 处理PDF文件的程序包,pdfminer、tabula、型高缺pdfplumber、camelot……查询资料表明,似乎普遍认为pdfminer的效果不怎么好,而tabula需要java支卜辩持 ,想偷懒于是只试了pdfplumber和camelot。
安装过程不赘述,直接来看运行结果。
pdfplumber无法直接解析出Scorecard.pdf文件中的表格,但实际上要解决此问题也并非难事。调整下思路,可先解析出pdf文件中的文本,让后通过分列来得到表格。
利用pdfplumber的extract_text()命令可解析出pdf文件中的文本,但由于本次需要解析的得分表pdf文件的排版的原因,左右两个表格的文本行并未完全对齐,因此如果直接解析完整页面上的文本的话,文字会出错。先用corp()命令指定识别范围,然后再extract_text(),识别得到的文本列表如下所示。
对于类似本例中Scorecard.pdf表格排版有错位的情况,也可以按照表格在页面中所处的位置,指定表格识别的范围。所用到的指令:camelot.plot()可以绘制出页面的略图,table_area参数可以指定表格识别的范围。
又及,Camelot原来是亚瑟王和圆桌骑士们的宫殿所在地,和Asgard的Valhalla一样,也是传说中的圣域。搜索camelot程序安装包时无意中学到的,涨知识了。
[1] Python:解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及对比
[2] 用Python提取pdf文件中的表格数据
[3] python读取pdf文件
[4] Github: pdfplumber
[5] Camelot: PDF Table Extraction for Humans
[6] ImageMagick Installation
[7] ImageMagick之PDF转换成图片(image)
[8] LEED 2009 for Existing Buildings: Operations & Maintenance
[9] Camelot - Wikipedia
[10] List o’ 10 Intriguing Mythical Places
[11] Camelot识别pdf表格时的参数设置补充