最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python使用pdfminer解析pdf文件的方法示例

 更新時(shí)間:2018年12月20日 09:22:51   作者:kongxx  
這篇文章主要介紹了python使用pdfminer解析pdf文件的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

最近要做個(gè)從 pdf 文件中抽取文本內(nèi)容的工具,大概查了一下 python 里可以使用 pdfminer 來實(shí)現(xiàn)。下面就看看怎樣使用吧。
PDFMiner是一個(gè)可以從PDF文檔中提取信息的工具。與其他PDF相關(guān)的工具不同,它注重的完全是獲取和分析文本數(shù)據(jù)。PDFMiner允許你獲取某一頁中文本的準(zhǔn)確位置和一些諸如字體、行數(shù)的信息。它包括一個(gè)PDF轉(zhuǎn)換器,可以把PDF文件轉(zhuǎn)換成HTML等格式。它還有一個(gè)擴(kuò)展的PDF解析器,可以用于除文本分析以外的其他用途。

PDFMiner內(nèi)置兩個(gè)好用的工具:pdf2txt.py和dumppdf.py

pdf2txt.py從PDF文件中提取所有文本內(nèi)容。但不能識(shí)別畫成圖片的文本,這需要特征識(shí)別。對(duì)于加密的PDF你需要提供一個(gè)密碼才能解析,對(duì)于沒有提取權(quán)限的PDF文檔你得不到任何文本。

dumppdf.py把PDF文件內(nèi)容變成pseudo-XML格式。這個(gè)程序主要用于debug,但是它也可能用于提取一些有意義的內(nèi)容(比如圖片)。

官方主頁:https://euske.github.io/pdfminer/

其特征有:1、完全使用python編寫。(適用于2.4或更新版本)2、解析,分析,并轉(zhuǎn)換成PDF文檔。3、PDF-1.7規(guī)范的支持。(幾乎)4、中日韓語言和垂直書寫腳本支持。5、各種字體類型(Type1、TrueType、Type3,和CID)的支持。6、基本加密(RC4)的支持。7、PDF與HTML轉(zhuǎn)換。8、綱要(TOC)的提取。9、標(biāo)簽內(nèi)容提取。10、通過分組文本塊重建原始的布局。
如果你的Python有安裝pip模塊,就可以通過命令“python pip install pdfminer”,自動(dòng)安裝pdfminer。

解析pdf文件用到的類:

  • PDFParser:從一個(gè)文件中獲取數(shù)據(jù)
  • PDFDocument:保存獲取的數(shù)據(jù),和PDFParser是相互關(guān)聯(lián)的
  • PDFPageInterpreter處理頁面內(nèi)容
  • PDFDevice將其翻譯成你需要的格式
  • PDFResourceManager用于存儲(chǔ)共享資源,如字體或圖像。

python的工具,安裝當(dāng)然是使用pip安裝了。

pip install pdfminer

命令行方式

為了使用方便,pdfminer 提供了一個(gè)命令行工具來直接轉(zhuǎn)換pdf文件,使用方法如下:

pdf2txt.py <path_to_pdf_file>

編程方式

除了命令行方式以外,對(duì)于復(fù)雜應(yīng)用場景,pdfminer 也提供了以編程方式來轉(zhuǎn)換 pdf 文件,主要使用下面幾個(gè)類來實(shí)現(xiàn):

  • PDFParser: 用來解析pdf文件。
  • PDFDocument:用來保存 PDFParser 解析后的對(duì)象。
  • PDFPageInterpreter:用來處理解析后的文檔頁面內(nèi)容。
  • PDFResourceManager:pdf 共享資源管理器,用于存儲(chǔ)共享資源,如字體或圖像。

下面看一個(gè)例子:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage, PDFTextExtractionNotAllowed
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams
import StringIO


class PDFUtils():

  def __init__(self):
    pass

  def pdf2txt(self, path):
    output = StringIO.StringIO()
    with open(path, 'rb') as f:
      praser = PDFParser(f)

      doc = PDFDocument(praser)

      if not doc.is_extractable:
        raise PDFTextExtractionNotAllowed

      pdfrm = PDFResourceManager()

      laparams = LAParams()

      device = PDFPageAggregator(pdfrm, laparams=laparams)

      interpreter = PDFPageInterpreter(pdfrm, device)

      for page in PDFPage.create_pages(doc):
        interpreter.process_page(page)
        layout = device.get_result()
        for x in layout:
          if hasattr(x, "get_text"):
            content = x.get_text()
            output.write(content)

    content = output.getvalue()
    output.close()
    return content


if __name__ == '__main__':
  path = u'/tmp/abc.pdf'
  pdf_utils = PDFUtils()
  print pdf_utils.pdf2txt(path)

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • pandas針對(duì)excel處理的實(shí)現(xiàn)

    pandas針對(duì)excel處理的實(shí)現(xiàn)

    這篇文章主要介紹了pandas針對(duì)excel處理的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 使用python?dateutil庫輕松處理日期和時(shí)間

    使用python?dateutil庫輕松處理日期和時(shí)間

    這篇文章主要介紹了使用python?dateutil庫輕松處理日期和時(shí)間實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • 利用python生成照片墻的示例代碼

    利用python生成照片墻的示例代碼

    這篇文章主要介紹了利用python生成照片墻的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • python+Django+apache的配置方法詳解

    python+Django+apache的配置方法詳解

    這篇文章主要介紹了python+Django+apache的配置方法,詳細(xì)分析了python+Django+apache的安裝與配置步驟,并分析了相關(guān)注意事項(xiàng),具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • Python實(shí)現(xiàn)錄屏功能的示例代碼

    Python實(shí)現(xiàn)錄屏功能的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)錄屏功能,文中的示例代碼講解詳細(xì),對(duì)我們掌握Python開發(fā)有一定的幫助,需要的可以參考一下
    2023-03-03
  • python矩陣基本運(yùn)算的實(shí)現(xiàn)

    python矩陣基本運(yùn)算的實(shí)現(xiàn)

    本文主要介紹了python?矩陣的基本運(yùn)算,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Django使用uwsgi部署時(shí)的配置以及django日志文件的處理方法

    Django使用uwsgi部署時(shí)的配置以及django日志文件的處理方法

    今天小編就為大家分享一篇Django使用uwsgi部署時(shí)的配置以及django日志文件的處理方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python面向?qū)ο髮?shí)現(xiàn)名片管理系統(tǒng)文件版

    python面向?qū)ο髮?shí)現(xiàn)名片管理系統(tǒng)文件版

    這篇文章主要為大家詳細(xì)介紹了python面向?qū)ο髮?shí)現(xiàn)名片管理系統(tǒng)文件版,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • 用python打印菱形的實(shí)操方法和代碼

    用python打印菱形的實(shí)操方法和代碼

    在本篇文章里小編給大家分享了關(guān)于用python打印菱形的實(shí)操方法和代碼,對(duì)此有需要的朋友們可以學(xué)習(xí)下。
    2019-06-06
  • python一秒搭建FTP服務(wù)器

    python一秒搭建FTP服務(wù)器

    今天給大家分享一篇教程關(guān)于python一秒搭建FTP服務(wù)器的教程,在搭建過程中需要用到pyftpdlib模塊,對(duì)python FTP服務(wù)器搭建過程感興趣的朋友跟隨小編一起看看吧
    2021-05-05

最新評(píng)論

璧山县| 忻州市| 广宗县| 东辽县| 乌什县| 共和县| 永州市| 饶阳县| 梧州市| 延安市| 横峰县| 扶风县| 鄢陵县| 定安县| 尼勒克县| 泾阳县| 石河子市| 仲巴县| 淮安市| 武宁县| 师宗县| 维西| 宜阳县| 和田市| 孟村| 鸡东县| 乡城县| 潮安县| 峡江县| 长寿区| 青神县| 浪卡子县| 宜宾县| 阳山县| 洞头县| 博乐市| 南宁市| 宣化县| 平南县| 新巴尔虎右旗| 两当县|