利用python將pdf輸出為txt的實(shí)例講解
一個(gè)禮拜前一個(gè)同學(xué)問我這個(gè)事情,由于之前在參加華為的比賽,所以賽后看了一下,據(jù)說需要用到pdfminer這個(gè)包。于是安裝了一下,安裝過程很簡(jiǎn)單:
sudo pip install pdfminer;
中間也沒有任何的報(bào)錯(cuò)。至于如何調(diào)用,本人也沒有很好的研究過pdfminer這個(gè)庫,于是開始了百度……
官方文檔:http://www.unixuser.org/~euske/python/pdfminer/index.html
完全使用python編寫。 (適用于2.4或更新版本)
解析,分析,并轉(zhuǎn)換成PDF文檔。
PDF-1.7規(guī)范的支持。 (幾乎)
中日韓語言和垂直書寫腳本支持。
各種字體類型(Type1、TrueType、Type3,和CID)的支持。
基本加密(RC4)的支持。
PDF與HTML轉(zhuǎn)換。
綱要(TOC)的提取。
標(biāo)簽內(nèi)容提取。
通過分組文本塊重建原始的布局。
一些基本的類
PDFParser:從一個(gè)文件中獲取數(shù)據(jù)
PDFDocument:保存獲取的數(shù)據(jù),和PDFParser是相互關(guān)聯(lián)的
PDFPageInterpreter處理頁面內(nèi)容
PDFDevice將其翻譯成你需要的格式
PDFResourceManager用于存儲(chǔ)共享資源,如字體或圖像。
簡(jiǎn)單的實(shí)現(xiàn)
讀取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') #來創(chuàng)建一個(gè)pdf文檔分析器 parser = PDFParser(fp) #創(chuàng)建一個(gè)PDF文檔對(duì)象存儲(chǔ)文檔結(jié)構(gòu) document = PDFDocument(parser) # 檢查文件是否允許文本提取 if not document.is_extractable: raise PDFTextExtractionNotAllowed else: # 創(chuàng)建一個(gè)PDF資源管理器對(duì)象來存儲(chǔ)共賞資源 rsrcmgr=PDFResourceManager() # 設(shè)定參數(shù)進(jìn)行分析 laparams=LAParams() # 創(chuàng)建一個(gè)PDF設(shè)備對(duì)象 # device=PDFDevice(rsrcmgr) device=PDFPageAggregator(rsrcmgr,laparams=laparams) # 創(chuàng)建一個(gè)PDF解釋器對(duì)象 interpreter=PDFPageInterpreter(rsrcmgr,device) # 處理每一頁 for page in PDFPage.create_pages(document): interpreter.process_page(page) # 接受該頁面的LTPage對(duì)象 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輸出為txt的實(shí)例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python 網(wǎng)絡(luò)編程詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了python 網(wǎng)絡(luò)編程詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-04-04如何利用opencv訓(xùn)練自己的模型實(shí)現(xiàn)特定物體的識(shí)別
在Python中通過OpenCV自己訓(xùn)練分類器進(jìn)行特定物體實(shí)時(shí)識(shí)別,下面這篇文章主要給大家介紹了關(guān)于如何利用opencv訓(xùn)練自己的模型實(shí)現(xiàn)特定物體的識(shí)別,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10詳解python關(guān)于多級(jí)包之間的引用問題
本文主要介紹了python關(guān)于多級(jí)包之間的引用問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-08-08pandas中字典和dataFrame的相互轉(zhuǎn)換
有時(shí)候需要把dic轉(zhuǎn)換為DataFrame格式,便于查看和存儲(chǔ),下面這篇文章主要給大家介紹了關(guān)于pandas中字典和dataFrame相互轉(zhuǎn)換的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09python+openCV調(diào)用攝像頭拍攝和處理圖片的實(shí)現(xiàn)
這篇文章主要介紹了python+openCV調(diào)用攝像頭拍攝和處理圖片的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08