pdf-analysis

仓库创建 2026年4月14日最近提交 3 天前SkillHot 收录 20 天前
▸ 精选理由

适合批量处理复杂 PDF,能智能选用文本提取或 OCR 并识别单位。

▸ 风险提示

可能需调用本地 OCR 或外部二进制(如 Tesseract、libreoffice)

这个 Skill 做什么

自动区分文本/扫描 PDF,提取文本、表格、图表并做单位感知数值计算。

先自动判断 PDF 是可选文本还是扫描件,再用合适的解析器提取文字、表格、图表和 caption,并能做带单位的数值计算。适合批量多页文档处理、把表格/图中数据抽出来做后续统计或计算时用。最大特点是先选对解析方法避免空结果,并支持单位感知的数值处理。

▸ 展开 SKILL.md 英文原文

PDF 文档解析。自动区分文字型 PDF 与扫描型 PDF,覆盖:文本/表格提取、多页全量扫描、嵌入图表 caption、单位感知数值计算。

数据与抓取PDF解析OCR表格抽取单位感知通用
4.8k
Stars
331
Forks
40
仓库内 Skill
+141
7 日增星
安装 / 使用
给你的 Agent 一句话(通用)
帮我安装这个 skill:https://raw.githubusercontent.com/OpenSenseNova/SenseNova-Skills/main/skills/sn-da-non-spreadsheet-analysis/capability/pdf-analysis/SKILL.md
或 curl 直取 SKILL.md
curl -fsSL "https://raw.githubusercontent.com/OpenSenseNova/SenseNova-Skills/main/skills/sn-da-non-spreadsheet-analysis/capability/pdf-analysis/SKILL.md"
SKILL.MD 节选查看完整文件 ↗
# PDF Analysis

## Step 0 — Detect PDF type (text vs scanned)

**Critical first step**: determine whether the PDF has extractable text or is a scanned image.
Never skip this — using the wrong parser wastes time and produces empty results.

```python
import fitz  # PyMuPDF

def detect_pdf_type(pdf_path, sample_pages=3):
    """
    Returns 'text' if PDF has extractable text, 'scanned' if image-based.
    Checks first N pages (or all if fewer).
    """
    doc = fitz.open(pdf_path)
    total_chars = 0
    pages_checked = min(sample_pages, len(doc))

    for i in range(pages_checked):
        page = doc[i]
        text = page.get_text("text")
        total_chars += len(text.strip())

    doc.cl
via SKILL·HOT · 数据来自 GitHub 公开信息 · 原文版权归作者所有