国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實(shí)現(xiàn)pdf文檔轉(zhuǎn)txt的方法示例

2020-01-04 16:09:58
字體:
供稿:網(wǎng)友

本文實(shí)例講述了Python實(shí)現(xiàn)pdf文檔轉(zhuǎn)txt的方法。分享給大家供大家參考,具體如下:

首先,這是一個(gè)比較粗糙的版本,因?yàn)橐呀?jīng)夠用了,而且對(duì)pdf的格式不熟悉,所以暫時(shí)沒有進(jìn)一步優(yōu)化。

還有,這是轉(zhuǎn)成txt的,所以如果是有圖片的pdf是無法保存圖片的。

至于本來就是圖片的文本,這里是無法分析出來的。那些圖片的pdf,估計(jì)要用圖形匹配的方式來處理,類似于超速拍攝的車牌識(shí)別。

不過這樣的程度,已經(jīng)不是文本處理了。扯遠(yuǎn)了。。。

轉(zhuǎn)出來的文字,好像按照pdf里面的所展示的來換行了,看不到有什么規(guī)則還原,我也不知道怎么處理,將就著用吧。

另外,初始代碼是網(wǎng)上找的,最初地址不知道哪里了。

用到了第三方庫pdfminier

pdfminer庫的地址 https://pypi.python.org/pypi/pdfminer3k

下載后,用cmd執(zhí)行命令 setup.py install

安裝完之后打開eclipse會(huì)彈出要求加載一些東西,點(diǎn)擊確定就行了。

再來看看代碼:

import os.pathfrom pdfminer.pdfparser import PDFParser,PDFDocumentfrom pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreterfrom pdfminer.converter import PDFPageAggregatorfrom pdfminer.layout import LTTextBoxHorizontal,LAParamsfrom pdfminer.pdfinterp import PDFTextExtractionNotAllowedclass CPdf2TxtManager():  '''''  classdocs  '''  def __init__(self):    '''''    Constructor    '''  def changePdfToText(self, filePath):    file = open(path, 'rb') # 以二進(jìn)制讀模式打開    #用文件對(duì)象來創(chuàng)建一個(gè)pdf文檔分析器    praser = PDFParser(file)    # 創(chuàng)建一個(gè)PDF文檔    doc = PDFDocument()    # 連接分析器 與文檔對(duì)象    praser.set_document(doc)    doc.set_parser(praser)    # 提供初始化密碼    # 如果沒有密碼 就創(chuàng)建一個(gè)空的字符串    doc.initialize()    # 檢測文檔是否提供txt轉(zhuǎn)換,不提供就忽略    if not doc.is_extractable:      raise PDFTextExtractionNotAllowed    # 創(chuàng)建PDf 資源管理器 來管理共享資源    rsrcmgr = PDFResourceManager()    # 創(chuàng)建一個(gè)PDF設(shè)備對(duì)象    laparams = LAParams()    device = PDFPageAggregator(rsrcmgr, laparams=laparams)    # 創(chuàng)建一個(gè)PDF解釋器對(duì)象    interpreter = PDFPageInterpreter(rsrcmgr, device)    pdfStr = ''    # 循環(huán)遍歷列表,每次處理一個(gè)page的內(nèi)容    for page in doc.get_pages(): # doc.get_pages() 獲取page列表      interpreter.process_page(page)      # 接受該頁面的LTPage對(duì)象      layout = device.get_result()      # 這里layout是一個(gè)LTPage對(duì)象 里面存放著 這個(gè)page解析出的各種對(duì)象 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等 想要獲取文本就獲得對(duì)象的text屬性,      for x in layout:        if (isinstance(x, LTTextBoxHorizontal)):          pdfStr = pdfStr + x.get_text() + '/n'    fileNames = os.path.splitext(filePath)    file2 = open(fileNames[0] + '.txt','wb')#保存這些內(nèi)容    file2.write(pdfStr.encode())    file2.close()    file.close()if __name__ == '__main__':  '''''   解析pdf 文本,保存到txt文件中  '''  path = r'C:/Users/Administrator/Desktop/《精力管理》.pdf'  pdf2TxtManager = CPdf2TxtManager()  pdf2TxtManager.changePdfToText(path)

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。


注:相關(guān)教程知識(shí)閱讀請移步到python教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 邯郸市| 商水县| 武威市| 天长市| 天柱县| 电白县| 蕉岭县| 兴和县| 临夏市| 宣城市| 灌南县| 芒康县| 兴城市| 濉溪县| 田东县| 浦北县| 文山县| 凯里市| 临夏市| 本溪市| 石城县| 玉田县| 紫阳县| 麻城市| 克东县| 中山市| 根河市| 镇安县| 前郭尔| 金溪县| 门头沟区| 无棣县| 宣化县| 上犹县| 五大连池市| 陈巴尔虎旗| 临猗县| 汶川县| 盱眙县| 太湖县| 额济纳旗|