首頁  >  文章  >  後端開發  >  利用python將pdf輸出為txt的實例

利用python將pdf輸出為txt的實例

不言
不言原創
2018-04-23 15:16:592197瀏覽

下面為大家分享一篇利用python將pdf輸出為txt的實例講解,具有很好的參考價值,希望對大家有幫助。一起來看看吧

一個禮拜前一個同學問我這個事情,由於之前在參加華為的比賽,所以賽後看了一下,據說需要用到pdfminer這個包。於是安裝了一下,安裝過程很簡單:

sudo pip install pdfminer;

#中間也沒有任何的報錯。至於如何調用,本人也沒有很好的研究過pdfminer這個函式庫,於是開始了百度…

官方文件:##http://www.unixuser .org/~euske/python/pdfminer/index.html

完全使用python編寫。 (適用於2.4或更新版本)

解析,分析,並轉換成PDF文件。

PDF-1.7規範的支持。 (幾乎)

中日韓語言和垂直書寫腳本支援。

各種字型類型(Type1、TrueType、Type3,和CID)的支援。

基本加密(RC4)的支援。

PDF與HTML轉換。

綱要(TOC)的提取。

標籤內容提取。

透過分組文字區塊重建原始的佈局。

一些基本的類別

PDFParser:從一個檔案中取得資料

PDFDocument:儲存取得的數據,和PDFParser是相互關聯的

PDFPageInterpreter處理頁面內容

PDFDevice將其翻譯成你需要的格式

PDFResourceManager用於儲存共享資源,如字體或圖像。

簡單的實作

#讀取test.pdf輸出為output.txt:

# -*- coding: utf-8 -*-  
from pdfminer.pdfparser import PDFParser 
from pdfminer.pdfdocument import PDFDocument 
from pdfminer.pdfpage import PDFPage 
from pdfminer.pdfpage import PDFTextExtractionNotAllowed 
from pdfminer.pdfinterp import PDFResourceManager 
from pdfminer.pdfinterp import PDFPageInterpreter 
from pdfminer.pdfdevice import PDFDevice 
from pdfminer.layout import * 
from pdfminer.converter import PDFPageAggregator 
import os 
fp = open('test.pdf', 'rb') 
#来创建一个pdf文档分析器 
parser = PDFParser(fp) 
#创建一个PDF文档对象存储文档结构 
document = PDFDocument(parser) 
# 检查文件是否允许文本提取 
if not document.is_extractable: 
 raise PDFTextExtractionNotAllowed 
else: 
 # 创建一个PDF资源管理器对象来存储共赏资源 
 rsrcmgr=PDFResourceManager() 
 # 设定参数进行分析 
 laparams=LAParams() 
 # 创建一个PDF设备对象 
 # device=PDFDevice(rsrcmgr) 
 device=PDFPageAggregator(rsrcmgr,laparams=laparams) 
 # 创建一个PDF解释器对象 
 interpreter=PDFPageInterpreter(rsrcmgr,device) 
 # 处理每一页 
 for page in PDFPage.create_pages(document): 
  interpreter.process_page(page) 
  # 接受该页面的LTPage对象 
  layout=device.get_result() 
  for x in layout: 
   if(isinstance(x,LTTextBoxHorizontal)): 
    with open('output.txt','a') as f: 
     f.write(x.get_text().encode('utf-8')+'\n')

相關推薦:


Python 將pdf轉換成圖片的方法


以上是利用python將pdf輸出為txt的實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn