新客立减

Python

解析并读取

PDF

⽂件内容的⽅法

本⽂实例讲述了

Python

解析并读取

PDF

⽂件内容的⽅法。分享给⼤家供⼤家参考,具体如下:

⼀、问题描述

利⽤

python

,去读取

pdf

⽂本内容。

⼆、效果

三、运⾏环境

python2.7

四、需要安装的库

pip install pdfminer

五、实现源代码

代码

1

win64

# 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') # 

以⼆进制读模式打开

    #

⽤⽂件对象来创建⼀个

pdf

⽂档分析器

    praser = PDFParser(file)

    # 

创建⼀个

PDF

⽂档

    doc = PDFDocument()

    # 

连接分析器

 

与⽂档对象

    praser.set_document(doc)

    doc.set_parser(praser)

    # 

提供初始化密码

    # 

如果没有密码

 

就创建⼀个空的字符串

    doc.initialize()

    # 

检测⽂档是否提供

txt

转换,不提供就忽略

    if not doc.is_extractable:

      raise PDFTextExtractionNotAllowed

    # 

创建

PDf 

资源管理器

 

来管理共享资源

    rsrcmgr = PDFResourceManager()

    # 

创建⼀个

PDF

设备对象

    laparams = LAParams()

    device = PDFPageAggregator(rsrcmgr, laparams=laparams)

    # 

创建⼀个

PDF

解释器对象

    interpreter = PDFPageInterpreter(rsrcmgr, device)

    pdfStr = ''

    # 

循环遍历列表,每次处理⼀个

page

的内容

    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"):