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

Written by

in

文章目录
  • 对于由扫描图片组成的 PDF 文件,必须借助 光学字符识别(OCR)技术 来提取其中的文字。
  • PDF 类型 推荐库 特点 纯文本型 PDF PyPDF2 或 pdfplumber 快速、高效,适合标准 PDF 文档 扫描图像型 PDF pdf2image + pytesseract 支持 OCR,适合图像型 PDF,但速度较慢
  • 功能 工具 描述 表格识别 camelot 或 tabula-py 专门用于提取 PDF 中表格数据 PDF 加密破解 pikepdf 可用于打开加密 PDF 文件(需密码) PDF 合并与拆分 PyPDF2 / pypdf 拆分、合并、旋转 PDF 页面 PDF 注释提取 pdfminer.six 提供底层解析能力,适合高级用途
  • 无论是处理普通的文本型 PDF 还是扫描图像型 PDF,Python 都提供了丰富的第三方库来帮助我们实现高效的文本提取。掌握这些工具不仅能提升办公效率,还能为数据分析、文档管理、信息自动化等场景打下坚实基础。 以上就是使用Python提取PDF文件中内容的代码示例和使用技巧的详细内容,更多关于Python提取PDF文件内容的资料请关注风君子博客其它相关文章! 您可能感兴趣的文章: Python如何批量提取pdf文本内容 Python调用olmOCR大模型实现提取复杂PDF文件内容 Python提取Pdf文件内容的操作方法(表格、文本、图片) 使用Python实现提取PDF文件中指定页面的内容 Python使用wxPython和PyMuPDF提取PDF页面指定页数的内容
  • 目录
    • 一、提取基于文本的 PDF 内容
      • 1. 使用 PyPDF2 提取纯文本
        • 安装
        • 示例代码
      • 2. 使用 pdfplumber 提取表格和布局复杂的文本
        • 安装
        • 示例代码
    • 二、提取扫描图像型 PDF 内容(OCR)
      • 1. 安装依赖项
        • Windows:
        • Linux / macOS:
      • 2. 示例代码:结合 pdf2image + pytesseract 提取扫描 PDF 内容
      • 三、总结与建议
        • 建议:
        • 四、扩展功能推荐
          • 结语

            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,某些页面可能无法正确提取文本。

            如果你需要提取含有表格、列布局或精确坐标信息的 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)技术 来提取其中的文字。

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

            • 下载并安装 Tesseract OCR
            • 添加 Tesseract 到系统环境变量(例如路径为 C:Program FilesTesseract-OCRtesseract.exe
            • 安装 Python 库:
            pip install pytesseract pillow pdf2image
            
            • 安装 Poppler(用于将 PDF 转换为图像):
              • 可以从 GitHub – poppler-windows 下载并解压,同样添加到系统 PATH。

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

            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 类型 推荐库 特点
            纯文本型 PDF PyPDF2 或 pdfplumber 快速、高效,适合标准 PDF 文档
            扫描图像型 PDF pdf2image + 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文件内容的资料请关注风君子博客其它相关文章!

            您可能感兴趣的文章:

            • Python如何批量提取pdf文本内容
            • Python调用olmOCR大模型实现提取复杂PDF文件内容
            • Python提取Pdf文件内容的操作方法(表格、文本、图片)
            • 使用Python实现提取PDF文件中指定页面的内容
            • Python使用wxPython和PyMuPDF提取PDF页面指定页数的内容

            站内搜索