中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在python中使用pdfminer解析pdf文件

發布時間:2021-03-25 17:13:11 來源:億速云 閱讀:688 作者:Leah 欄目:開發技術

怎么在python中使用pdfminer解析pdf文件?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

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

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

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

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

解析pdf文件用到的類:

  • PDFParser:從一個文件中獲取數據

  • PDFDocument:保存獲取的數據,和PDFParser是相互關聯的

  • PDFPageInterpreter處理頁面內容

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

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

python的工具,安裝當然是使用pip安裝了。

pip install pdfminer

命令行方式

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

pdf2txt.py <path_to_pdf_file>

編程方式

除了命令行方式以外,對于復雜應用場景,pdfminer 也提供了以編程方式來轉換 pdf 文件,主要使用下面幾個類來實現:

  • PDFParser: 用來解析pdf文件。

  • PDFDocument:用來保存 PDFParser 解析后的對象。

  • PDFPageInterpreter:用來處理解析后的文檔頁面內容。

  • PDFResourceManager:pdf 共享資源管理器,用于存儲共享資源,如字體或圖像。

下面看一個例子:

#!/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)

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安宁市| 扬州市| 祁连县| 阳朔县| 女性| 新龙县| 平顶山市| 博白县| 来安县| 都安| 华阴市| 德清县| 黎城县| 阳谷县| 锦屏县| 赤峰市| 鄄城县| 荣昌县| 中西区| 山丹县| 克东县| 蓬溪县| 松溪县| 宜良县| 资阳市| 新宁县| 成都市| 富阳市| 临邑县| 苏尼特右旗| 宁津县| 女性| 凭祥市| 烟台市| 南皮县| 北辰区| 永善县| 红桥区| 蓬莱市| 天津市| 绵竹市|