讀取PDF文件

2021-07-29 15:49:24 字數 2304 閱讀 2858

#coding=utf-8

#匯入開發包

frompdfminer.pdfparserimportpdfparser, pdfdocument

frompdfminer.pdfinterpimportpdfresourcemanager, pdfpageinterpreter

frompdfminer.pdfdeviceimportpdfdevice

frompdfminer.converterimportpdfpageaggregator

frompdfminer.layoutimportlaparams

#開啟模式

"""w :以寫方式開啟a :以追加模式開啟r+:以讀寫模式開啟w+:以讀寫模式開啟(參見w)a+:以讀寫模式開啟(參見a)rb:以二進位制讀模式開啟wb:以二進位制寫模式開啟(參見w)ab:以二進位制追加模式開啟(參見a)rb+:以二進位制讀寫模式開啟(參見r+)wb+:以二進位制讀寫模式開啟(參見w+)ab+:以二進位制讀寫模式開啟(參見a+)"""#獲取文件的物件

fp=open("naacl06-shinyama.pdf","rb")

#建立乙個與文件相關的直譯器

parser=pdfparser(fp)

#建立乙個pdf文件物件

doc=pdfdocument()

#鏈結直譯器和文件物件

parser.set_document(doc)

doc.set_parser(parser)

#初始化文件物件,文件若有密碼寫入,無密碼則為空

doc.initialize("")

#建立pdf資源管理器

resource=pdfresourcemanager()

#建立引數分析器。要分析pdf有哪些內容,文字,等

#alt+enter自動匯入包

laparam=laparams()

#建立乙個聚合器,將資源管理器和引數分析器都放在聚合器裡

device=pdfpageaggregator(resource,laparams=laparam)

#建立pdf頁面直譯器,將資源管理器和聚合器放入頁面直譯器,進行解釋

interpreter=pdfpageinterpreter(resource,device)

#使用文件物件得到頁面的集合

#得到每一頁

forpageindoc.get_pages():

#使用頁面直譯器來讀取頁,因為頁面直譯器是接收了乙個聚合器的,故下面可以直接用聚合器來獲取內容

interpreter.process_page(page)

#使用聚合器來獲取內容

layout=device.get_result()

foroutinlayout:

#使用下面的方法,到或者下劃線時會報錯,程式會中斷,因為它們沒有get_text()方法

#為使程式執行下去可以加個判斷

c 讀取pdf文件

2.解壓pdfbox,專案中新增存在解壓後bin目錄下的dll檔案 ikvm.gnu.classpath.dll ikvm.runtime.dll fontbox 0.1.0 dev.dll pdfbox 0.7.3.dll 3.檔案中引入2個命名空間 using org.pdfbox.pdmode...

python讀取pdf文件 實戰

coding utf 8 讀取pdf文件 from pdfminer.converter import pdfpageaggregator from pdfminer.layout import laparams from pdfminer.pdfparser import pdfparser,pd...

用python讀取pdf文件

首先要安裝庫 pdfminer3k from pdfminer.converter import pdfpageaggregator from pdfminer.layout import laparams from pdfminer.pdfparser import pdfparser,pdfdo...