开发者

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

目录
  • 一、提取基于文本的 PDF 内容
    • 1. 使用 PyPDF2 提取纯文本
      • 安装
      • 示例代码
    • 2. 使用 pdfplumber 提取表格和布局复杂的文本
      • 安装
      • 示例代码
  • 二、提取扫描图像型 PDF 内容(OCR)
    • 1. 安装依赖项
      • Windowandroids:
      • linux / MACOS:
    • 2. 示例代码:结合 pdf2image + pytesseract 提取扫描 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:

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

          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"
          
              rewww.devze.comturn 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 都提供了丰富的第三方库来帮助我们实现高效的文本提取。掌握这些工具不仅能提升办公效率,还能为数据分析、文档管理、信息自动www.devze.com化等场景打下坚实基础。

          以上就是使用Python提取PDF文件编程客栈中内容的代码示例和使用技巧的详细内容,更多关于Python提取PDF文件内容的资料请关注编程客栈(www.devze.com)其它相关文章!

          0

          上一篇:

          下一篇:

          精彩评论

          暂无评论...
          验证码 换一张
          取 消

          最新开发

          开发排行榜