用途:解析 PDF 文档内容。先检测 PDF 类型,再选择合适的解析方式,避免对扫描件使用文本解析而得到空结果。
主要能力:检测文字型与扫描型 PDF(按抽样页平均字符数判断);文字型 PDF 逐页全量提取文本;用 pdfplumber 提取表格为 DataFrame 并做清洗;扫描型 PDF 逐页渲染为 PNG 后调用 caption 脚本做 OCR 式内容提取;混合型 PDF 按页分别走文本或图像路径;提取嵌入图片/图表并按尺寸阈值过滤图标;对“1,760 千港元”这类文本做带单位的数值解析;在长文档中按关键词跨页搜索并返回上下文。
使用方式:依赖 PyMuPDF(fitz)、pdfplumber、pandas、Pillow,以及本地 caption 脚本路径。/tmp 路径与 CAPTION 变量需按实际环境替换。核心调用如 fitz.open(pdf_path) 后遍历所有页,或 pdfplumber.open 提取表格,扫描页用 fitz.Matrix 渲染成 PNG 再执行 python3 caption.py --json --prompt。
适用场景:多张发票或对账单汇总、财报与合同等长文档关键信息检索、图文混排或纯图片 PDF 的信息提取、图表数据提取。
限制:扫描件效果依赖 caption 模型,脚本超时为 90 秒;表格列对齐需人工校验表头和前三行;数值单位需结合问题确认,不能默认按百分比输出;输入为目录或多 PDF 压缩包时需先解压;资料未提供 caption 脚本的具体获取方式、安装命令与费用信息。