Python2.7讀取PDF文件的方法示例
本文實(shí)例講述了Python2.7讀取PDF文件的方法。分享給大家供大家參考,具體如下:
這篇文章示例代碼采用的Python版本是2.7,需要下載的插件是PDFMiner,下載地址是http://www.unixuser.org/~euske/python/pdfminer/,地址里有安裝方法,我就不再細(xì)說(shuō)了,需要說(shuō)明的是Python2只能使用PDFMiner,Python3不能使用,Python3可以使用PDFMiner3K,下載地址為https://pypi.python.org/pypi/pdfminer3k/。兩種插件使用上大體相似,這里我以Python2為例,使用PDFMiner插件。代碼如下:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
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
from pdfminer.layout import LAParams
from pdfminer.converter import PDFPageAggregator
#獲取文檔對(duì)象,你把a(bǔ)lgorithm.pdf換成你自己的文件名即可。
fp=open("algorithm.pdf","rb")
#創(chuàng)建一個(gè)與文檔相關(guān)聯(lián)的解釋器
parser=PDFParser(fp)
#PDF文檔對(duì)象
doc=PDFDocument(parser)
#鏈接解釋器和文檔對(duì)象
parser.set_document(doc)
#doc.set_paeser(parser)
#初始化文檔
#doc.initialize("")
#創(chuàng)建PDF資源管理器
resource=PDFResourceManager()
#參數(shù)分析器
laparam=LAParams()
#創(chuàng)建一個(gè)聚合器
device=PDFPageAggregator(resource,laparams=laparam)
#創(chuàng)建PDF頁(yè)面解釋器
interpreter=PDFPageInterpreter(resource,device)
#使用文檔對(duì)象得到頁(yè)面集合
for page in PDFPage.create_pages(doc):
#使用頁(yè)面解釋器來(lái)讀取
interpreter.process_page(page)
#使用聚合器來(lái)獲取內(nèi)容
layout=device.get_result()
for out in layout:
if hasattr(out, "get_text"):
print out.get_text()
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python文件與目錄操作技巧匯總》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
雙向RNN:bidirectional_dynamic_rnn()函數(shù)的使用詳解
今天小編就為大家分享一篇雙向RNN:bidirectional_dynamic_rnn()函數(shù)的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01
python3中dict.keys().sort()用不了的解決方法
本文主要介紹了python3中dict.keys().sort()用不了的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
基于python實(shí)現(xiàn)的抓取騰訊視頻所有電影的爬蟲(chóng)
這篇文章主要介紹了用python實(shí)現(xiàn)的抓取騰訊視頻所有電影的爬蟲(chóng),這個(gè)程序使用芒果存, 所以大家需要下載使用mongodb才可以2016-04-04
結(jié)合Python網(wǎng)絡(luò)爬蟲(chóng)做一個(gè)今日新聞小程序
本篇文章介紹了我在開(kāi)發(fā)過(guò)程中遇到的一個(gè)問(wèn)題,以及解決該問(wèn)題的過(guò)程及思路,通讀本篇對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下2021-09-09
親測(cè)解決tensorflow和keras版本不匹配的問(wèn)題
這篇文章主要介紹了親測(cè)解決tensorflow和keras版本不匹配問(wèn)題,完美解決:ImportError: No module named 'tensorflow.python.eager'問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
Python Matplotlib條形圖之垂直條形圖和水平條形圖詳解
這篇文章主要為大家詳細(xì)介紹了Python Matplotlib條形圖之垂直條形圖和水平條形圖,使用數(shù)據(jù)庫(kù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
C# DataGridView行列轉(zhuǎn)換的具體實(shí)現(xiàn)
本文主要介紹了C# DataGridView行列轉(zhuǎn)換的具體實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02

