当前位置: 代码网 > it编程>前端脚本>Python > 使用Python提取PDF文件中内容的代码示例和使用技巧

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

2025年07月10日 Python 我要评论
一、提取基于文本的 pdf 内容1. 使用 pypdf2 提取纯文本pypdf2 是一个轻量级但功能强大的库,适合用于读取和提取标准文本型 pdf 中的内容。安装pip install pypdf2示

一、提取基于文本的 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:

  • 下载并安装 tesseract ocr
  • 添加 tesseract 到系统环境变量(例如路径为 c:\program files\tesseract-ocr\tesseract.exe
  • 安装 python 库:
pip install pytesseract pillow pdf2image
  • 安装 poppler(用于将 pdf 转换为图像):

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,但速度较慢

建议:

  • 优先判断 pdf 类型:可以尝试用 pypdf2 提取看看是否有返回内容,若为空则可能是扫描图像。
  • 提高 ocr 准确率:可先对图像进行预处理(如灰度化、二值化),再传给 pytesseract
  • 多语言支持:tesseract 支持多种语言包,可通过 -l 参数指定语言,如 pytesseract.image_to_string(img, lang='chi_sim') 提取中文。

四、扩展功能推荐

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

结语

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

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

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com