这个 Skill 能做什么,适合哪些场景?
这是 DeepTutor 内置的办公技能之一,让模型在代码执行沙箱里直接处理 PDF 文件。它按任务挑选预装的 Python 库:pdfplumber 做布局感知的文本和表格提取,pypdf 做合并、拆分、旋转、水印、加密和表单填写,reportlab 从零生成新 PDF,PyMuPDF 把页面渲染成图片。技能对扫描件的态度很诚实:沙箱没有 OCR 引擎且无网络,遇到纯图片 PDF 会明确告知无法恢复文字,而不是编造内容。对中文等非拉丁文字,它内置了 CJK 字体注册流程,避免输出永久性的方框乱码。
- 用 pdfplumber 提取带布局的文本、表格及单词坐标,可将表格导出为 Excel 多工作表
- 用 pypdf 合并、按页拆分、旋转、裁剪页面,读取/写入元数据,加密与解密
- 用 pypdf 识别并填写 AcroForm 可填表单,或对平面表单用 FreeText 注释叠加文字
- 用 reportlab 从零创建报告式 PDF(自动分页)或 canvas 固定坐标排版
- 用 PyMuPDF(fitz)将页面栅格化为 PNG,供视觉检查或交给图像模型
- 检测扫描件并如实告知无法 OCR,失败时诊断 stderr 并换策略而非盲目重试
- 研究人员上传论文 PDF,要求提取其中的表格并整理成 Excel 对比数据
- 行政人员需要把多个 PDF 合并成一份报告,或按页拆分后加密分发
- 用户收到一份可填写的申请表 PDF,需要模型自动识别字段并填入信息
- 助教要为课程讲义加水印、旋转扫描页或批量重命名页面元数据
- 开发者需要从 Markdown/数据内容生成排版良好的新 PDF 报告,含中文内容
- 用户需要把 PDF 某几页渲染成图片,用于演示或交给图像分析步骤
- 需要识别扫描件(纯图片 PDF)文字的场景——沙箱无 tesseract 且网络关闭,无法 OCR
- 期望 Markdown/HTML 直接转 PDF 的场景——soffice/pandoc 在沙箱中通常缺失,只能退化用 reportlab 手工排版
- 不愿意在主机上运行模型生成代码的用户——办公技能依赖 exec/code_execution 沙箱,可通过 sandbox_allow_subprocess=false 关闭,但技能随之无法产出文件
如何安装这个 Skill?
- 静态评审未执行任何代码;示例(尤其表单填充和 CJK 字体注册)依赖沙箱内库与字体版本,使用前应在目标环境验证。
- 扫描版 PDF 无法 OCR 是硬性边界,含扫描页的文件只能得到部分结果,请提前确认输入类型。
- encrypt/decrypt 示例使用明文口令参数,敏感文档加密时注意口令不落入日志或会话记录。
- SKILL.md 无版本号与变更记录,升级 DeepTutor 时示例 API 行为可能随依赖版本变化。
- Shell / 命令行
- 本地文件系统
Python with pdfplumber, pypdf, reportlab, PyMuPDF preinstalled in sandboxfonts-wqy-zenhei (CJK font, optional)
该技能是 DeepTutor 仓库内置的办公技能(docx/pdf/pptx/xlsx 之一),随主程序一起安装,无需单独下载。DeepTutor(PyPI)完整本地安装:
mkdir -p my-deeptutor && cd my-deeptutor
pip install -U deeptutor
deeptutor init
deeptutor startDeepTutor(Docker)单容器部署,技能在容器内沙箱可用:
docker run --rm --name deeptutor \
-p 127.0.0.1:3782:3782 \
-v deeptutor-data:/app/data \
ghcr.io/hkuds/deeptutor:latest源码中技能文件位于 deeptutor/skills/builtin/pdf/SKILL.md;仓库未提供将其单独安装到 Claude Code 或 Codex 的文档。
如何使用这个 Skill?
安装后,把下面任意一句发给 Agent 即可触发:
- 从这份年报 PDF 里提取所有财务表格,导出成一个 Excel 文件,每张表一个工作表
- 把这三个 PDF 合并成一个,加上'内部资料'水印,然后加密,密码是 user123
- 帮我填好这份租房申请表 PDF:姓名张三、勾选'同意条款'复选框
- 用报告样式生成一份 500 字的产品介绍 PDF,标题加粗,含一个季度数据表格
技能由模型自动触发:当用户上传 .pdf 或要求生成、编辑、提取 PDF 数据时即被调用。执行流程是在沙箱中用 exec 运行完整的 Python 脚本(pdfplumber / pypdf / reportlab / fitz 已预装),优先在一次调用中创建、重开并校验产物,后续调用可修改同一文件。要点:明确要求的数量(如 500 字)会被保留并在输出前验证;执行失败时会诊断 stderr 并改变策略;遇到 (cid:NN) 之类的乱码输出即判定为扫描件并如实停止。沙箱子进程执行由 system. 中 sandbox_allow_subprocess 控制(默认开启)。
这个 Skill 有哪些优点和局限?
- 覆盖 PDF 全生命周期:提取、创建、编辑、加密、填表、渲染一站完成
- 库选择指南清晰,按任务匹配 pdfplumber/pypdf/reportlab/PyMuPDF
- 对扫描件和字体缺失如实报告,明确禁止编造内容或输出方框乱码
- 含处理中文/日文/韩文等 CJK 字体的完整注册方案与坐标换算细节
- 表格可直接导出为多工作表 Excel,实用性强
- 无 OCR 能力,扫描件文字完全无法恢复
- 依赖沙箱中预装的确切库版本,换到其他宿主环境需自行配置依赖
- Markdown/HTML 转 PDF 的外部转换器(soffice/pandoc)通常缺失
- 作为 DeepTutor 内置技能,未文档化如何独立安装到 Claude Code/Codex 等其他平台
这个 Skill 与同类方案有什么区别?
与相关 Skills 并排比较;分数均按同一 FSRS 标准得出。
| Skill | FS 评分 | Star 数 | 最近更新 | License |
|---|---|---|---|---|
| DeepTutor PDF 技能 本页 | 61 · 推荐 | ★ 41k | 17 天前 | Apache-2.0 |
| Open Cowork PDF 技能 | 69 · 推荐 | ★ 2.2k | 12 天前 | MIT |
| OpenAI PDF 文档处理技能 ✓ OpenAI · 官方 | 46 · 谨慎使用 | ★ 28k | 4 个月前 | — |
| Anthropic PDF 文档处理技能 ✓ Anthropic · 官方 | 45 · 不推荐 | ★ 181k | 16 天前 | — |
| Book-to-Skill 图书技能转换器 | 57 · 谨慎使用 | ★ 35k | 13 天前 | MIT |
同一仓库内置了配套的 docx、pptx、xlsx 技能,构成一套完整的办公文档处理家族;本技能专注 PDF,与它们互补而非竞争。源材料未提及其他第三方替代品。
FollowSkills 如何评估这个 Skill?
技能在沙箱 shell 中运行,仅依赖预装库,明确禁止 pip install 和网络 OCR,数据流透明(读输入 PDF、写相对路径输出),无凭据或外部副作用;扣分点:无显式用户确认环节、无回滚说明、发布方未经注册表验证、加密示例中的口令处理未涉及敏感信息提示。
指令自洽,按任务选库的决策树清晰,含失败诊断指引(读 stderr、换策略、不盲目重试)、验证步骤(重开输出确认字段/字数);扣分点:纯静态评审未执行,边界用例(损坏 PDF、超 大文件、多子字体 ttc 兼容)未经测试佐证,失败反馈质量仅有文档声明。
触发条件明确(用户上传 .pdf 或要求生成/编辑/抽取),能力边界罕见地诚实声明:无 OCR、网络关闭、soffice/pandoc 通常缺失时的降级路径;中文场景有专门的 CJK 字体注册方案(wqy 等 TrueType 路径)。扣分点:核心功能依赖沙箱预装字体和库,未验证在目标沙箱环境的实际可用性;frontmatter 的 requires 声明较简略。
结构分层良好:按任务分节、渐进披露、代码示例充分、已知限制(无 OCR、CFF 字体不支持、缺转换器)主动披露;依赖在 pyproject 中显式声明(pypdf/pdfplumber/reportlab/PyMuPDF),Apache-2.0 许可清晰。扣分点:SKILL.md 本身无版本号或变更记录,已知限制散落在正文中而非汇总 FAQ,维护责任仅能追溯到仓库整体。
覆盖 PDF 工作流的主要任务(抽取、建表、合并、加密、表单、渲染),示例可直接复用,对中文输出、扫描件、扁平表单等难点给出可操作方案,边际价值明显;扣分点:静态评审无法验证输出质量,示例假定库版本行为,输出仍需运行核验,比较收益仅有推理依据。
代码示例具体、可审计,依赖声明与 pyproject 交叉印证,仓库含 CI 工作流和测试目录但未见覆盖本技能关键路径的测试;扣分点:所有 claims 均为作者编写,无第三方执行证据,扫描件行为、字体回退等关键声明无法静态复现,静态上限 5。
点击维度查看打分理由
证据充分度:低 — 主要依赖静态检查、作者材料或有限演示;适合发现线索,不适合做高风险决策。
查看完整评分方法 →