1 from pdfminer.converter import PDFPageAggregator 2 from pdfminer.layout import LAParams 3 from pdfminer.pdfparser import PDFParser 4 from pdfminer.pdfparser import PDFDocument 5 from pdfminer.pdfinterp import PDFResourceManager 6 from pdfminer.pdfinterp import PDFPageInterpreter 7 from pdfminer.pdfdevice import PDFDevice 8 9 # 獲取文檔對象 10 fp = open("banReport.pdf","rb") 11 12 # 創建一個PDF文檔解釋器 13 parser = PDFParser(fp) 14 15 # PDF文檔的對象 16 doc = PDFDocument() 17 18 #連接解釋器和文檔對象 19 parser.set_document(doc) 20 doc.set_parser(parser) 21 22 # 初始化文檔 23 doc.initialize('') 24 25 # 創建PDF資源管理器 26 resource = PDFResourceManager() 27 28 #參數分析器 29 laparam = LAParams() 30 31 # 創建一個聚合器 32 device = PDFPageAggregator(resource,laparams=laparam) 33 # 創建PDF頁面解釋器 34 interpreter = PDFPageInterpreter(resource,device=device) 35 36 # 使用文檔對象得到頁面的集合 37 for page in doc.get_pages(): 38 # 使用頁面解釋器來讀取 39 interpreter.process_page(page) 40 41 # 使用聚合器來獲取內容 42 layout = device.get_result() 43 44 for out in layout: 45 if hasattr(out,"get_text"): 46 print(out.get_text())