溫馨提示×

溫馨提示×

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

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

python實現(xiàn)pdf轉換成word/txt純文本文件

發(fā)布時間:2020-09-27 06:51:07 來源:腳本之家 閱讀:199 作者:initiallysunny 欄目:開發(fā)技術

本文實例為大家分享了python實現(xiàn)pdf轉word/txt,供大家參考,具體內容如下

依賴包:pdfminer3k

可以通過pip安裝;也可以到官網下載,解壓,進入文件夾,輸入命令setup.py install安裝軟件。

源代碼:

#!/usr/bin/python 
# -*- coding: utf-8 -*- 
 
import sys 
import importlib 
importlib.reload(sys) 
 
from pdfminer.pdfparser import PDFParser,PDFDocument 
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter 
from pdfminer.converter import PDFPageAggregator 
from pdfminer.layout import * 
from pdfminer.pdfinterp import PDFTextExtractionNotAllowed 
 
''''' 
解析pdf文件,獲取文件中包含的各種對象 
''' 
 
# 解析pdf文件函數 
def parse(pdf_path): 
  fp = open(pdf_path, 'rb') # 以二進制讀模式打開 
  # 用文件對象來創(chuàng)建一個pdf文檔分析器 
  parser = PDFParser(fp) 
  # 創(chuàng)建一個PDF文檔 
  doc = PDFDocument() 
  # 連接分析器 與文檔對象 
  parser.set_document(doc) 
  doc.set_parser(parser) 
 
  # 提供初始化密碼 
  # 如果沒有密碼 就創(chuàng)建一個空的字符串 
  doc.initialize() 
 
  # 檢測文檔是否提供txt轉換,不提供就忽略 
  if not doc.is_extractable: 
    raise PDFTextExtractionNotAllowed 
  else: 
    # 創(chuàng)建PDf 資源管理器 來管理共享資源 
    rsrcmgr = PDFResourceManager() 
    # 創(chuàng)建一個PDF設備對象 
    laparams = LAParams() 
    device = PDFPageAggregator(rsrcmgr, laparams=laparams) 
    # 創(chuàng)建一個PDF解釋器對象 
    interpreter = PDFPageInterpreter(rsrcmgr, device) 
 
    # 用來計數頁面,圖片,曲線,figure,水平文本框等對象的數量 
    num_page, num_image, num_curve, num_figure, num_TextBoxHorizontal = 0, 0, 0, 0, 0 
 
    # 循環(huán)遍歷列表,每次處理一個page的內容 
    for page in doc.get_pages(): # doc.get_pages() 獲取page列表 
      num_page += 1 # 頁面增一 
      interpreter.process_page(page) 
      # 接受該頁面的LTPage對象 
      layout = device.get_result() 
      for x in layout: 
        if isinstance(x,LTImage): # 圖片對象 
          num_image += 1 
        if isinstance(x,LTCurve): # 曲線對象 
          num_curve += 1 
        if isinstance(x,LTFigure): # figure對象 
          num_figure += 1 
        if isinstance(x, LTTextBoxHorizontal): # 獲取文本內容 
          num_TextBoxHorizontal += 1 # 水平文本框對象增一 
          # 保存文本內容 
          with open(r'test.doc', 'a',encoding='utf-8') as f:  #生成doc文件的文件名及路徑 
            results = x.get_text() 
            f.write(results) 
            f.write('\n') 
    print('對象數量:\n','頁面數:%s\n'%num_page,'圖片數:%s\n'%num_image,'曲線數:%s\n'%num_curve,'水平文本框:%s\n' 
       %num_TextBoxHorizontal) 
 
 
if __name__ == '__main__': 
  pdf_path = r'test.pdf' #pdf文件路徑及文件名 
  parse(pdf_path) 

此腳本只能將pdf文件轉換成純文本文件,沒有任何格式。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

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

AI