效率与协作

DeepTutor PDF 技能

在沙箱中读取、提取、创建、合并、加密、填表和渲染 PDF 文件,一应俱全。

61/ 100
推荐

整体可靠,存在已披露的局限;按说明试用并保留回滚路径。

查看评分依据 ↓
可直接使用于
Codex · Claude Code
Star 数
★ 41k
最近更新
17 天前
License
Apache-2.0
pdf-extractionpdf-creationform-fillingpdfplumber
+4pypdfreportlabpymupdftable-extraction

这个 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 行为可能随依赖版本变化。
开始前你需要
Agent 需要具备
  • Shell / 命令行
  • 本地文件系统
需要预先安装
  • Python with pdfplumber, pypdf, reportlab, PyMuPDF preinstalled in sandbox
  • fonts-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 start

DeepTutor(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?

FollowSkills 评估 · FSRS-2.0
推荐
61/ 100 五分制 3.1 / 5
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
1信任安全18 / 25 · 3.6/5

技能在沙箱 shell 中运行,仅依赖预装库,明确禁止 pip install 和网络 OCR,数据流透明(读输入 PDF、写相对路径输出),无凭据或外部副作用;扣分点:无显式用户确认环节、无回滚说明、发布方未经注册表验证、加密示例中的口令处理未涉及敏感信息提示。

2可靠稳定10 / 20 · 2.5/5

指令自洽,按任务选库的决策树清晰,含失败诊断指引(读 stderr、换策略、不盲目重试)、验证步骤(重开输出确认字段/字数);扣分点:纯静态评审未执行,边界用例(损坏 PDF、超 大文件、多子字体 ttc 兼容)未经测试佐证,失败反馈质量仅有文档声明。

3适用触发11 / 15 · 3.7/5

触发条件明确(用户上传 .pdf 或要求生成/编辑/抽取),能力边界罕见地诚实声明:无 OCR、网络关闭、soffice/pandoc 通常缺失时的降级路径;中文场景有专门的 CJK 字体注册方案(wqy 等 TrueType 路径)。扣分点:核心功能依赖沙箱预装字体和库,未验证在目标沙箱环境的实际可用性;frontmatter 的 requires 声明较简略。

4规范维护11 / 15 · 3.7/5

结构分层良好:按任务分节、渐进披露、代码示例充分、已知限制(无 OCR、CFF 字体不支持、缺转换器)主动披露;依赖在 pyproject 中显式声明(pypdf/pdfplumber/reportlab/PyMuPDF),Apache-2.0 许可清晰。扣分点:SKILL.md 本身无版本号或变更记录,已知限制散落在正文中而非汇总 FAQ,维护责任仅能追溯到仓库整体。

5有效结果7 / 15 · 2.3/5

覆盖 PDF 工作流的主要任务(抽取、建表、合并、加密、表单、渲染),示例可直接复用,对中文输出、扫描件、扁平表单等难点给出可操作方案,边际价值明显;扣分点:静态评审无法验证输出质量,示例假定库版本行为,输出仍需运行核验,比较收益仅有推理依据。

6证据核验4 / 10 · 2.0/5

代码示例具体、可审计,依赖声明与 pyproject 交叉印证,仓库含 CI 工作流和测试目录但未见覆盖本技能关键路径的测试;扣分点:所有 claims 均为作者编写,无第三方执行证据,扫描件行为、字体回退等关键声明无法静态复现,静态上限 5。

1 2 3 4 5 6

点击维度查看打分理由

评估于 2026年9月9日 审查版本 7a96bba1ae03 评估证据[1][2][3][4][5][6][7][8]

证据充分度:低 — 主要依赖静态检查、作者材料或有限演示;适合发现线索,不适合做高风险决策。

查看完整评分方法 →

常见问题

处理扫描版 PDF 会怎样?
技能会检测到页面是扫描件(文本为空或出现 (cid:NN) 乱码),并明确告知沙箱没有 OCR 引擎、网络也已关闭,无法恢复文字——它不会编造内容,也不会尝试联网安装 tesseract。
生成的 PDF 里有中文,会不会变方框?
不会,只要宿主有 CJK TrueType 字体(如 wqy-zenhei)。技能内置了字体注册函数,会在所有样式上强制使用该字体;若主机完全没有可用字体,它会拒绝输出并告知用户,而不是交付乱码 PDF。
需要联网吗?
不需要。所有 Python 库在沙箱中已预装,技能明确说明网络是关闭的,也不应尝试 pip install。
模型生成的代码在我的主机上运行安全吗?
这是一个真实的信任决策。DeepTutor 提供了 `sandbox_allow_subprocess` 设置(默认 true),可关闭主机侧代码执行;docker-compose 部署下可自动路由到加固的 runner sidecar,隔离性最强。

同仓库的其他 Skills

均来自 HKUDS/DeepTutor

相关 Skills