溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python中將pdf內(nèi)容顯示出來的方法

發(fā)布時間:2020-07-06 15:58:07 來源:億速云 閱讀:234 作者:清晨 欄目:編程語言

這篇文章主要介紹python中將pdf內(nèi)容顯示出來的方法,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

python讀取pdf文件需要使用pdfminer庫,安裝pdfminer庫的命令如下:

pip install pdfminer

python讀取pdf的文件如下:

# 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') # 以二進(jìn)制讀模式打開
    #用文件對象來創(chuàng)建一個pdf文檔分析器
    praser = PDFParser(file)
    # 創(chuàng)建一個PDF文檔
    doc = PDFDocument()
    # 連接分析器 與文檔對象
    praser.set_document(doc)
    doc.set_parser(praser)
    # 提供初始化密碼
    # 如果沒有密碼 就創(chuàng)建一個空的字符串
    doc.initialize()
    # 檢測文檔是否提供txt轉(zhuǎn)換,不提供就忽略
    if not doc.is_extractable:
      raise PDFTextExtractionNotAllowed
    # 創(chuàng)建PDf 資源管理器 來管理共享資源
    rsrcmgr = PDFResourceManager()
    # 創(chuàng)建一個PDF設(shè)備對象
    laparams = LAParams()
    device = PDFPageAggregator(rsrcmgr, laparams=laparams)
    # 創(chuàng)建一個PDF解釋器對象
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    pdfStr = ''
    # 循環(huán)遍歷列表,每次處理一個page的內(nèi)容
    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 + '\n')
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結(jié)束!'
  print u'總共耗時:' + str(time2 - time1) + 's'

pdf文件如下:

python中將pdf內(nèi)容顯示出來的方法

python讀取結(jié)果如下:

python中將pdf內(nèi)容顯示出來的方法

以上是python中將pdf內(nèi)容顯示出來的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI