python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python提取PDF文件内容

使用Python提取PDF文件中内容的代码示例和使用技巧

作者:行云流水剑

在文档自动化处理、数据提取和信息分析等任务中,从 PDF 文件中提取文本是一项常见需求,PDF 文件通常分为两种类型:基于文本的 PDF 和 包含扫描图像的 PDF,本文将介绍如何使用 Python 分别提取这两种类型的 PDF 内容,需要的朋友可以参考下

一、提取基于文本的 PDF 内容

1. 使用 PyPDF2 提取纯文本

PyPDF2 是一个轻量级但功能强大的库,适合用于读取和提取标准文本型 PDF 中的内容。

安装

pip install PyPDF2

示例代码

import PyPDF2

def extract_text_from_pdf(pdf_path):
    with open(pdf_path, 'rb') as file:
        reader = PyPDF2.PdfReader(file)
        text = ""
        for page in reader.pages:
            text += page.extract_text()
        return text

# 使用示例
pdf_path = 'example.pdf'
extracted_text = extract_text_from_pdf(pdf_path)
print(extracted_text)

注意:对于格式复杂或字体嵌入的 PDF,某些页面可能无法正确提取文本。

2. 使用 pdfplumber 提取表格和布局复杂的文本

如果你需要提取含有表格、列布局或精确坐标信息的 PDF,pdfplumber 是更合适的选择。

安装

pip install pdfplumber

示例代码

import pdfplumber

def extract_text_from_pdf(pdf_path):
    with pdfplumber.open(pdf_path) as pdf:
        text = ""
        for page in pdf.pages:
            text += page.extract_text()
        return text

# 使用示例
pdf_path = 'example.pdf'
extracted_text = extract_text_from_pdf(pdf_path)
print(extracted_text)

特点:支持表格识别、文字坐标定位等功能。

二、提取扫描图像型 PDF 内容(OCR)

对于由扫描图片组成的 PDF 文件,必须借助 光学字符识别(OCR)技术 来提取其中的文字。

1. 安装依赖项

你需要安装 Tesseract OCR 引擎以及对应的 Python 封装库。

Windows:

pip install pytesseract pillow pdf2image

Linux / macOS:

sudo apt install tesseract-ocr libpoppler-cpp-dev  # Ubuntu/Debian
brew install tesseract poppler                    # macOS (Homebrew)
pip install pytesseract pillow pdf2image

2. 示例代码:结合 pdf2image + pytesseract 提取扫描 PDF 内容

from pdf2image import convert_from_path
import pytesseract
from PIL import Image

def extract_text_from_scanned_pdf(pdf_path):
    # 将 PDF 转换为图像列表
    images = convert_from_path(pdf_path)

    extracted_text = ""
    for image in images:
        # 对每张图片执行 OCR
        text = pytesseract.image_to_string(image)
        extracted_text += text + "\n"

    return extracted_text

# 使用示例
pdf_path = 'scanned_example.pdf'
text = extract_text_from_scanned_pdf(pdf_path)
print(text)

说明:该方法会逐页将 PDF 转换为图像,再通过 OCR 提取文字,适用于高质量扫描件。

三、总结与建议

PDF 类型推荐库特点
纯文本型 PDFPyPDF2 或 pdfplumber快速、高效,适合标准 PDF 文档
扫描图像型 PDFpdf2image + pytesseract支持 OCR,适合图像型 PDF,但速度较慢

建议:

四、扩展功能推荐

功能工具描述
表格识别camelot 或 tabula-py专门用于提取 PDF 中表格数据
PDF 加密破解pikepdf可用于打开加密 PDF 文件(需密码)
PDF 合并与拆分PyPDF2 / pypdf拆分、合并、旋转 PDF 页面
PDF 注释提取pdfminer.six提供底层解析能力,适合高级用途

结语

无论是处理普通的文本型 PDF 还是扫描图像型 PDF,Python 都提供了丰富的第三方库来帮助我们实现高效的文本提取。掌握这些工具不仅能提升办公效率,还能为数据分析、文档管理、信息自动化等场景打下坚实基础。

以上就是使用Python提取PDF文件中内容的代码示例和使用技巧的详细内容,更多关于Python提取PDF文件内容的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文