怎么在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文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mpi tcp连接报错_关于WinCC与
- 下一篇: html的checkbox多选复选框fo