You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python提取PDF纯文本(排除图片、表格)?

解决方案:PDF纯文本提取(排除表格、图片区域)

核心思路

利用pdfplumber的表格/图片检测能力,获取它们的坐标范围,在提取文本时直接排除这些区域,只保留纯文本内容。

修改后的代码实现

import pdfplumber
import re

def extract_first_lines_for_HTML(pdf_path, left=0, top=50, right=0, bottom=50):
    extracted_data = []
    non_extracted_data = []

    with pdfplumber.open(pdf_path) as pdf:
        for page_number in range(len(pdf.pages)):
            page = pdf.pages[page_number]
            # 裁剪页面,排除页眉页脚
            crop_box = (left, top, page.width - right, page.height - bottom)
            page_crop = page.within_bbox(crop_box)

            # 收集需要排除的区域:表格 + 图片
            exclude_bboxes = []
            # 检测并添加表格区域
            table_objects = page_crop.find_tables()
            exclude_bboxes.extend([table.bbox for table in table_objects])
            # 检测并添加图片区域
            images = page_crop.images
            exclude_bboxes.extend([img["bbox"] for img in images])

            # 提取排除指定区域后的纯文本
            page_text = page_crop.extract_text(
                x_tolerance=1.5,
                y_tolerance=3.5,
                exclude_bboxes=exclude_bboxes
            )

            # 文本清洗与处理
            if page_text:
                page_text = re.sub(r"(\∗)[\n\r]+(.*?)(\() (\))", r"\2\3*\4", page_text)
                lines = page_text.split('\n')
                extracted_data.extend(lines)
            else:
                non_extracted_data.append(page_number + 1)  # 记录无有效文本的页码

    return extracted_data, non_extracted_data

关键说明

  • 表格排除:通过page_crop.find_tables()获取表格的坐标边界(bbox),这些边界会被传入extract_text的exclude_bboxes参数,跳过表格内的文本提取。如果你的PDF有复杂嵌套表格,可以调整find_tables()的strategy参数(可选"lines"或"text")优化检测精度。
  • 图片排除:page_crop.images会返回页面内所有图片的元数据,其中bbox是图片的坐标范围,同样加入排除列表,避免提取图片周边的冗余标注(原生PDF中图片本身无文本,此操作主要排除图片占位区域的无效内容)。
  • 容错处理:添加if page_text判断,避免页面无文本时触发split报错,同时记录无有效文本的页码方便排查。

调试建议

可以在代码中加入print(f"Page {page_number+1} excluded areas: {exclude_bboxes}"),查看排除的区域坐标是否符合预期,以此调整页眉页脚的裁剪参数或表格检测策略。

内容的提问来源于stack exchange,提问作者Strategic Gamer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 13:45:18