日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

怎么在python中使用pdfminer解析pdf文件

發布時間:2023/12/19 综合教程 38 生活家
生活随笔 收集整理的這篇文章主要介紹了 怎么在python中使用pdfminer解析pdf文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

怎么在python中使用pdfminer解析pdf文件?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

pdf2txt.py從PDF文件中提取所有文本內容。但不能識別畫成圖片的文本,這需要特征識別。對于加密的PDF你需要提供一個密碼才能解析,對于沒有提取權限的PDF文檔你得不到任何文本。

dumppdf.py把PDF文件內容變成pseudo-XML格式。這個程序主要用于debug,但是它也可能用于提取一些有意義的內容(比如圖片)。

官方主頁:https://euske.github.io/pdfminer/

其特征有:1、完全使用python編寫。(適用于2.4或更新版本)2、解析,分析,并轉換成PDF文檔。3、PDF-1.7規范的支持。(幾乎)4、中日韓語言和垂直書寫腳本支持。5、各種字體類型(Type1、TrueType、Type3,和CID)的支持。6、基本加密(RC4)的支持。7、PDF與HTML轉換。8、綱要(TOC)的提取。9、標簽內容提取。10、通過分組文本塊重建原始的布局。
如果你的Python有安裝pip模塊,就可以通過命令“python pip install pdfminer”,自動安裝pdfminer。

解析pdf文件用到的類:

  • PDFParser:從一個文件中獲取數據

  • PDFDocument:保存獲取的數據,和PDFParser是相互關聯的

  • PDFPageInterpreter處理頁面內容

  • PDFDevice將其翻譯成你需要的格式

  • PDFResourceManager用于存儲共享資源,如字體或圖像。

python的工具,安裝當然是使用pip安裝了。

pipinstallpdfminer

命令行方式

為了使用方便,pdfminer 提供了一個命令行工具來直接轉換pdf文件,使用方法如下:

pdf2txt.py<path_to_pdf_file>

編程方式

除了命令行方式以外,對于復雜應用場景,pdfminer 也提供了以編程方式來轉換 pdf 文件,主要使用下面幾個類來實現:

  • PDFParser: 用來解析pdf文件。

  • PDFDocument:用來保存 PDFParser 解析后的對象。

  • PDFPageInterpreter:用來處理解析后的文檔頁面內容。

  • PDFResourceManager:pdf 共享資源管理器,用于存儲共享資源,如字體或圖像。

下面看一個例子:

#!/usr/bin/envpython
#-*-coding:utf-8-*-
frompdfminer.pdfparserimportPDFParser
frompdfminer.pdfdocumentimportPDFDocument
frompdfminer.pdfpageimportPDFPage,PDFTextExtractionNotAllowed
frompdfminer.pdfinterpimportPDFResourceManager,PDFPageInterpreter
frompdfminer.converterimportPDFPageAggregator
frompdfminer.layoutimportLAParams
importStringIO


classPDFUtils():

def__init__(self):
pass

defpdf2txt(self,path):
output=StringIO.StringIO()
withopen(path,'rb')asf:
praser=PDFParser(f)

doc=PDFDocument(praser)

ifnotdoc.is_extractable:
raisePDFTextExtractionNotAllowed

pdfrm=PDFResourceManager()

laparams=LAParams()

device=PDFPageAggregator(pdfrm,laparams=laparams)

interpreter=PDFPageInterpreter(pdfrm,device)

forpageinPDFPage.create_pages(doc):
interpreter.process_page(page)
layout=device.get_result()
forxinlayout:
ifhasattr(x,"get_text"):
content=x.get_text()
output.write(content)

content=output.getvalue()
output.close()
returncontent


if__name__=='__main__':
path=u'/tmp/abc.pdf'
pdf_utils=PDFUtils()
printpdf_utils.pdf2txt(path)

總結

以上是生活随笔為你收集整理的怎么在python中使用pdfminer解析pdf文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。