1. 产品
  2.   PDF格式
  3.   Python
  4.   PDFMiner
 
  

通过免费的 Python 库从 PDF 中提取信息

免费的 Python API,使开发人员能够从 PDF 文档中提取信息并将 PDF 转换为其他格式并执行自动布局分析。

PDFMiner 是一个非常易于使用的开源 Python 库,用于处理 PDF 文件而无需任何其他依赖项。 PDFMine.six 原始 PDFMiner 库的社区维护分支。该库为从 PDF 文档中提取信息提供了非常强大的功能。它为非程序员提供命令实用程序,为程序员提供 API 接口。强大的 PDF 转换器也是库的一部分,可帮助用户将 PDF 文件转换为其他文本格式,例如 HTML。

PDFMiner 是一个纯 Python 库,可以轻松地从以编程方式呈现的 PDF 文件中提取所有文本。强大的功能是它还为每个文本段提取相应的位置、字体名称和大小以及书写方向(水平或垂直)。它支持 PDF-1.7 规范,并提供对受密码保护的 PDF 文档提取的支持。该库还包括其他几个重要功能,例如解析、分析和转换 PDF 文档、将内容提取为 HTML 或 hOCR、支持垂直书写脚本、RC4 和 AES 加密支持、提取目录、标记内容提取、自动布局分析等。

Previous Next

开始使用 PDFMiner

PDFMiner 需要 Python 3.6 及更高版本。您可以使用 pip 安装 PDFMiner。请使用以下命令安装它。

通过 pip 安装 PDFMiner

 pip install pdfminer 

您还可以从 GitHub 存储库下载编译后的共享库并安装。

通过 Python 从 PDF 文件中提取文本

开源 Pdfminer.six 库使软件开发人员能够仅使用几行 Python 代码从 PDF 文件中提取文本。该库专注于获取和分析文本数据,然后直接从 PDF 的源代码中提取页面中的文本。该库还允许开发人员从 PDF 文件中提取图像(JPG、JBIG2、位图)。也可以提取每个单独字符的字体名称或大小。以下示例显示如何从 PDF 文件中提取文本并将其打印在屏幕上。

通过 Python 打开和操作 PDF 文档

 from pdfminer.high_level import extract_text
# Extract text from a pdf.
text = extract_text('example.pdf')
# Extract iterable of LTPage objects.
pages = extract_pages('example.pdf')
print(text)

通过 Python API 将 PDF 文件转换为 hOCR

hOCR 是从光学字符识别 (OCR) 获得的格式化文本数据表示的开放标准。免费的 Pdfminer.six 库允许软件开发人员使用几行 Python 代码将 PDF 文件转换为 hOCR 格式。该库非常容易处理,可以从那些确实有它的 PDF 中提取明确的文本信息,并使用它来生成基本的 hOCR 表示。

通过 Python 将 PDF 文件转换为文本

该库包含丰富的特性集和功能,可让您扩展到基本的 PDF 处理之外。开源 Pdfminer.six 库让 Python 开发人员只需几个简单的命令即可将 PDF 文档转换为文本。首先,您需要提供 PDF 文件和文本文件的路径。如果文档受密码保护,您还需要提供其密码。下面的代码示例可以用来实现这个目标,它会简单地返回一个 PDF 中的字符串,给定它的文件名,你可以很容易地将它保存到一个文件中。

通过 Python API 将 PDF 文件转换为文本格式

 from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from io import StringIO
def convert_pdf_to_txt(path):
    rsrcmgr = PDFResourceManager()
    retstr = StringIO()
    codec = 'utf-8'
    laparams = LAParams()
    device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
    fp = open(path, 'rb')
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    password = ""
    maxpages = 0
    caching = True
    pagenos=set()
    for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True):
        interpreter.process_page(page)
    text = retstr.getvalue()
    fp.close()
    device.close()
    retstr.close()
    return text
 中国人