Python 에서 PDF 파일 내용 을 분석 하고 읽 는 방법

5446 단어 PythonPDF 파일
이 글 의 실례 는 Python 이 PDF 파일 의 내용 을 해석 하고 읽 는 방법 을 설명 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
문제 설명
python 을 이용 하여 pdf 텍스트 내용 을 읽 습 니 다.

효과

3.운영 환경
python2.7
4.설치 해 야 할 라 이브 러 리

pip install pdfminer

5.소스 코드 구현
코드 1(win 64)

# coding=utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import time
time1=time.time()
import os.path
from pdfminer.pdfparser import PDFParser,PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LTTextBoxHorizontal,LAParams
from pdfminer.pdfinterp import PDFTextExtractionNotAllowed
result=[]
class CPdf2TxtManager():
  def __init__(self):
    '''''
    Constructor
    '''
  def changePdfToText(self, filePath):
    file = open(path, 'rb') #          
    #          pdf     
    praser = PDFParser(file)
    #     PDF  
    doc = PDFDocument()
    #            
    praser.set_document(doc)
    doc.set_parser(praser)
    #        
    #                  
    doc.initialize()
    #         txt  ,      
    if not doc.is_extractable:
      raise PDFTextExtractionNotAllowed
    #   PDf              
    rsrcmgr = PDFResourceManager()
    #     PDF    
    laparams = LAParams()
    device = PDFPageAggregator(rsrcmgr, laparams=laparams)
    #     PDF     
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    pdfStr = ''
    #       ,      page   
    for page in doc.get_pages(): # doc.get_pages()   page  
      interpreter.process_page(page)
      #       LTPage  
      layout = device.get_result()
      for x in layout:
        if hasattr(x, "get_text"):
          # print x.get_text()
          result.append(x.get_text())
          fileNames = os.path.splitext(filePath)
          with open(fileNames[0] + '.txt','wb') as f:
            results = x.get_text()
            print(results)
            f.write(results + '
') if __name__ == '__main__': ''''' pdf , txt ''' path = u'C:/data3.pdf' pdf2TxtManager = CPdf2TxtManager() pdf2TxtManager.changePdfToText(path) # print result[0] time2 = time.time() print u'ok, pdf !' print u' :' + str(time2 - time1) + 's'
코드 2(win 32)

# coding=utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import time
time1=time.time()
import os.path
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFTextExtractionNotAllowed
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
result=[]
class CPdf2TxtManager():
  def __init__(self):
    '''''
    Constructor
    '''
  def changePdfToText(self, filePath):
    file = open(path, 'rb') #          
    #          pdf     
    praser = PDFParser(file)
    #     PDF  
    doc = PDFDocument(praser)
    #         txt  ,      
    if not doc.is_extractable:
      raise PDFTextExtractionNotAllowed
    #   PDf              
    rsrcmgr = PDFResourceManager()
    #     PDF    
    laparams = LAParams()
    device = PDFPageAggregator(rsrcmgr, laparams=laparams)
    #     PDF     
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    pdfStr = ''
    #       ,      page   
    for page in PDFPage.create_pages(doc): # doc.get_pages()   page  
      interpreter.process_page(page)
      #       LTPage  
      layout = device.get_result()
      for x in layout:
        if hasattr(x, "get_text"):
          # print x.get_text()
          result.append(x.get_text())
          fileNames = os.path.splitext(filePath)
          with open(fileNames[0] + '.txt','wb') as f:
            results = x.get_text()
            print(results)
            f.write(results + '
') if __name__ == '__main__': ''''' pdf , txt ''' path = u'C:/36.pdf' pdf2TxtManager = CPdf2TxtManager() pdf2TxtManager.changePdfToText(path) # print result[0] time2 = time.time() print u'ok, pdf !' print u' :' + str(time2 - time1) + 's'
더 많은 Python 관련 내용 에 관심 이 있 는 독 자 는 본 사이트 의 주 제 를 볼 수 있 습 니 다.
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기