← ClaudeAtlas

pdf-readerlisted

通用 PDF 按需读取技能,适用于文字型、扫描/图片型、图文混排、大文件、加密、无书签或含表格/表单/链接的 PDF。先用 meta/toc/outline 建立全局地图,再按需抽取文本、渲染图片、搜索关键词或提取表格,避免全文加载并节省 tokens。
danking211367/pdf-reader-skill · ★ 0 · Data & Documents · score 67
Install: claude install-skill danking211367/pdf-reader-skill
# 通用 PDF 读取技能 本技能使用 `scripts/pdf_tools.py` 读取任意 PDF。核心策略是先建立页面地图,再只抽取必要页面;遇到扫描/图片页时渲染为 PNG 供视觉理解,或按需 OCR。 ## 准备 ```bash python -m pip install pymupdf # 把本目录(仓库根)设到 TOOL 变量:TOOL="<本仓库的绝对路径>/scripts/pdf_tools.py" TOOL="$(cd "$(dirname "$0")" && pwd)/scripts/pdf_tools.py" PDF="C:/path/to/document.pdf" ``` - 若已把本技能安装到 `~/.claude/skills/pdf-reader`,可用 `TOOL="~/.claude/skills/pdf-reader/scripts/pdf_tools.py"`(Windows 展开为 `C:/Users/<用户名>/.claude/skills/pdf-reader/scripts/pdf_tools.py`)。 - Windows 上若 `python` 不在 PATH,可用 `py -3` 替代。 - 脚本依赖 PyMuPDF;缺少时会提示安装。 - OCR 可选:`python -m pip install pytesseract Pillow`,并安装 Tesseract OCR 与所需语言包。 ## 工作流 ### 1. 先建地图 ```bash python "$TOOL" meta "$PDF" python "$TOOL" toc "$PDF" ``` `meta` 返回页数、加密状态、书签数量、元数据;`toc` 返回书签目录。若 PDF 没有书签,生成候选目录: ```bash python "$TOOL" outline "$PDF" --max-pages 0 ``` `outline` 按字号和粗体识别标题,适合无书签的文本型 PDF。`--max-pages 0` 表示扫描全部页;若结果过杂,调高 `--min-size`;若输出提示无文本层,改用 `img` 视觉阅读。 ### 2. 按需抽取文本 ```bash python "$TOOL" text "$PDF" 12 python "$TOOL" text "$PDF" 12 16 python "$TOOL" text "$PDF" --pages 3,5-8 ``` - 一次最多带 3–5 页进上下文,够用即止。 - 若某页输出“本页无文本层”,说明可能是扫描/图片页,改用 `img` 或 `ocr`。 - 加密 PDF 在命令末尾加 `--password "密码"`。 ### 3. 扫描/图片页渲染 ```bash python "$TOOL" img "$PDF" 12 "C:/temp/page-12.png" python "$TOOL" img "$PDF" 12 16 "C:/temp" ``` 默认 `--zoom 2.0`。页面宽大或文件很大时可降到 `--zoom 1.5`;需要看清精确编号或小字时可提高 zoom。渲染后使用图像查看工具阅读,读完及时清理。 ### 4. 关键词定位 ```bash python "$TOOL" search "$PDF" "关键词" python "$TOOL" search "$PDF" "^Part No" --rege