pdf-analysis
仓库创建 2026年4月14日最近提交 3 天前SkillHot 收录 20 天前
▸ 精选理由
适合批量处理复杂 PDF,能智能选用文本提取或 OCR 并识别单位。
▸ 风险提示
可能需调用本地 OCR 或外部二进制(如 Tesseract、libreoffice)
这个 Skill 做什么
自动区分文本/扫描 PDF,提取文本、表格、图表并做单位感知数值计算。
先自动判断 PDF 是可选文本还是扫描件,再用合适的解析器提取文字、表格、图表和 caption,并能做带单位的数值计算。适合批量多页文档处理、把表格/图中数据抽出来做后续统计或计算时用。最大特点是先选对解析方法避免空结果,并支持单位感知的数值处理。
▸ 展开 SKILL.md 英文原文
PDF 文档解析。自动区分文字型 PDF 与扫描型 PDF,覆盖:文本/表格提取、多页全量扫描、嵌入图表 caption、单位感知数值计算。
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.clvia SKILL·HOT · 数据来自 GitHub 公开信息 · 原文版权归作者所有