PDF工具箱

SKILL效率
效率 未标注权限 许可证不明确
安装这个技能

PDF轻量工具箱:拆分/方向校正/合并/提取/标注/生成/水印/加密/压缩/图片组卷/页码/批量体检/上传就绪修复/扁平化固化/敏感信息扫描。覆盖PDFPatcher核心操作+行级涂色加框标注+送审只读固化。

一句话选型结论

按资料字段整理

PDF工具箱是效率类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类效率 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_f1d11e73/zfl-pdf-toolkit
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

效率
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_f1d11e73仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791691378
正文体量15.3 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
整理待办与日程

把零散任务收进清单,排出优先级。

批量处理重复任务

把固定动作做成模板,重复执行。

把流程写成清单

把口头流程整理成可复用的步骤。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在效率场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
PDF工具箱当前 未标注权限 未标注 未标注 未标注 有
Nano PDF 文档 联网访问 ClawHub 市场 424.9 万 OpenClaw 有
自动更新程序 浏览器控制 ClawHub 市场 296.4 万 OpenClaw 有
Gemini 助手 联网访问 ClawHub 市场 254.7 万 OpenClaw 有
word DOCX 文档 联网访问 ClawHub 市场 239.6 万 OpenClaw 有
Excel XLSX 前端 联网访问 ClawHub 市场 227.0 万 OpenClaw 有

SKILL.md 全文

15.3 KB
模型实际读到的说明书原文,来自技能仓库

Quick Start(快速上手)

所有功能集中在 scripts/pdf_toolkit.py,用受管 Python 运行(依赖缺失会自动用阿里云镜像安装 pypdf/pypdfium2/pillow)。

操作 命令示例 说明
按页拆分 python pdf_toolkit.py split -i a.pdf -o out/ 每页一个 01.pdf/02.pdf...
拆分+方向校正 python pdf_toolkit.py split-orient -i a.pdf -o out/ 逐页检测旋转角并校正后拆分(最常用)
整份方向校正 python pdf_toolkit.py orient -i a.pdf -o a_fixed.pdf 修正整份PDF的歪斜/倒立
方向检测(不改文件) python pdf_toolkit.py orient -i a.pdf --dry-run 仅打印每页旋转角与置信度
合并 python pdf_toolkit.py merge -i "out/*.pdf" -o merged.pdf 按文件名排序合并
页码范围提取 python pdf_toolkit.py extract -i a.pdf -p "3-5,8" -o part.pdf 提取第3-5、8页
提取图片 python pdf_toolkit.py images -i a.pdf -o imgs/ 导出页面嵌入的图片
提取文本 python pdf_toolkit.py text -i a.pdf -o a.txt 导出纯文本
行级涂色加框 python pdf_toolkit.py annotate -i a.pdf -o a_marked.pdf --page 1 --text "关键词" 黄底红框、文字仍可读;扫描件用 --rect x0,y0,x1,y1
生成/水印/加密解密 见下方「生成 / 水印 / 加密解密」章节 generate / watermark / crypt 三个子命令
上传就绪体检 python pdf_toolkit.py check -i a.pdf 头/尾/xref/strict解析/首页渲染六项体检;加密件加 --password;有问题 exit 1
敏感信息扫描 python pdf_toolkit.py check -i a.pdf --security 扫文本层 PII(身份证/手机/银行卡/金额)+元数据,外发/送审前脱敏自查(不阻断健康结论)
规范化修复 python pdf_toolkit.py repair -i a.pdf -o a_fixed.pdf 修复"本地能开、系统拒收"件(垃圾头/缺%%EOF/xref断裂),保留书签元数据
压缩到上传上限 python pdf_toolkit.py compress -i a.pdf --target-size 20M 无损优先;超目标自动转图片;达不成给诚实提示
图片组卷 python pdf_toolkit.py img2pdf -i p1.png p2.jpg -o album.pdf 多图拼一册,可串 --orient 方向校正
加页码 python pdf_toolkit.py pagenum -i a.pdf -o a_n.pdf 页脚/页眉六方位,中文零字体依赖
批量体检 python pdf_toolkit.py batch --dir ./inbox --report md 目录全量体检,聚合 PASS/FAIL;--dashboard 出看板
行业规则体检 python pdf_toolkit.py check -i a.pdf --profile unicom 按联通/移动/电信/默认规则库卡上传红线
扁平化固化 python pdf_toolkit.py flatten -i a_marked.pdf -o a_flat.pdf 标注/水印栅格化为不可编辑只读PDF(送审防篡改);--dpi 150/--quality 85 控体积;--pages 3-5 仅固化指定页

能力矩阵与边界(速查)

场景 命令 预期
单文件 上述任意子命令 xxx -i 文件.pdf 秒~分钟级,收尾自动自检
批量目录 batch --dir 资料/ [--recursive] [--report md] [--security] 逐件隔离体检,单件坏不中断整批;聚合 PASS/FAIL
大文件(>50MB) 同上;compress 自动转图片重排达标 全量载入内存;超大扫描件若 OOM,先 compress --target-size 瘦身或 split 拆后再处理
海量目录(数百件) batch --dir 资料/ --report json 喂 zfl-audit-charts 看板 单件失败不影响整体,报告可审计

边界(明确不做 / 前置条件)
- 方向校正(orient)、图片组卷(--orient) 依赖 Tesseract(自动探测 C:/Program Files/Tesseract-OCR/tesseract.exe);未装则跳过校正仅按 /Rotate 元数据处理,不报错。
- 首次运行按需自动装 pypdf/pypdfium2/pillow/PyMuPDF/reportlab/cryptography(走阿里云镜像);国内 PyPI 直连常超时,脚本已默认用镜像,无需手动配。
- 不做:表格提取、PDF→Word、翻译、表单填写、数字签名、自然语言编辑——这些交给 pdfkit-py(本机已有)。
- 安全扫描 --security 仅扫文本层,扫描件/图片 PDF 需先 OCR 才有文本可扫;身份证/银行卡/带单位金额为正则粗筛,命中为"疑似",脱敏前请人工复核。另含「无单位纯大额」宽松命中(5–11 位裸数/千分位逗号数,去逗号后同样限 5–11 位)以降漏报;据实已将上限收到 11 位(超 12 位无单位金额少见、且 12 位以上裸数更易撞合同号),但可能误报合同号/序号/数量,且 PDF 文本层 元/万元 因字体乱码成 · 时会兜底标出裸数——均属预期宽松召回,须人工复核。

行级涂色加框标注(annotate)

参考腾讯文档 PDFKit(pdfkit-py)的 PyMuPDF 标注范式,实现"高亮某一行+红色边框,文字仍能看清"。

模式 命令示例 说明
按文本定位 python pdf_toolkit.py annotate -i a.pdf -o out.pdf --page 1 --text "某某监理咨询有限公司" 自动搜索文本并扩展为整行宽;仅适用于含文字层的 PDF
按坐标定位 python pdf_toolkit.py annotate -i a.pdf -o out.pdf --page 1 --rect "50,300,780,340" 扫描件/图片 PDF 使用;坐标为视觉坐标(左上原点、y 向下),已自动适配 /Rotate
自定义颜色 --fill FFFF00 --border FF0000 --opacity 0.3 --border-width 1.5 填充色、边框色、填充透明度、边框粗细
取消整行扩展 --no-full-width 仅高亮文本自身 bbox(文本模式)
  • 实现:用 PyMuPDF 添加两个矩形批注,一个是半透明填充(默认黄色 0.3 透明度),另一个是不透明红框;原文字保留。
  • 依赖:PyMuPDF 按需懒加载,首次运行 annotate 时自动从阿里云镜像安装。

拆分命名规则

  • 默认前缀空、补零宽度 2、后缀 .pdf(即 01.pdf)。可用 --prefix 页 改成 页01.pdf,--width 3 改成 001.pdf。
  • 输出目录不存在时自动创建。

高级用法(来自 PDFPatcher 理念)

  • 批量处理目录:for f in *.pdf; do python pdf_toolkit.py split-orient -i "$f" -o "${f%.pdf}_pages/"; done
  • 先校正再拆分:split-orient 内部等价于"逐页检测→旋转→写出单页文件",无需先生成整份校正版。
  • 更多可扩展方向(书签、去水印、字体替换等)见 references/pdfpatcher_features.md。

依赖与运行

  • 受管 Python:~/.workbuddy/binaries/python/envs/default/Scripts/python.exe(按本机用户目录展开;已含 pypdf/pypdfium2/pillow)。
  • Tesseract:方向校正需要;从 https://github.com/tesseract-ocr/tesseract 安装,中文包通常已随安装附带(Han 脚本检测不依赖中文训练数据)。
  • 自动安装:脚本启动时若缺 pypdf/pypdfium2/pillow,会用 https://mirrors.aliyun.com/pypi/simple/ 安装(PyPI 直连在本机常超时)。

生成 / 水印 / 加密解密

操作 命令示例 说明
文本/Markdown 生成 PDF python pdf_toolkit.py generate -i a.md -o a.pdf --title "标题" 自动注册中文 CID 字体(STSong-Light);标题/多级标题/正文分样式;内联可用 --text "..."
文字水印 python pdf_toolkit.py watermark -i a.pdf -o a_wm.pdf --text "机密" --opacity 0.2 --angle 45 半透明对角平铺;--color RRGGBB 改色、--font-size 改字号
图片水印 python pdf_toolkit.py watermark -i a.pdf -o a_wm.pdf --image logo.png 透明 PNG 铺满每页
加密 python pdf_toolkit.py crypt -i a.pdf -o a_enc.pdf --password 123456 AES-256 设用户密码(--owner-password 可选);输出 <名>_encrypted.pdf
解密 python pdf_toolkit.py crypt -i a_enc.pdf -o a_dec.pdf --decrypt --password 123456 去除密码;密码错误会报错退出
  • 生成:用 reportlab 的 SimpleDocTemplate + Paragraph 排版,#/##/### 自动识别为各级标题,正文自动换行;中文字体走 CID(STSong-Light),无需本地字体文件。
  • 水印:文字水印用 reportlab 渲染旋转半透明平铺水印页,再经 PyMuPDF show_pdf_page 叠加(任意角度+真透明+中文);图片水印直接插入整页(建议预先准备透明 PNG)。
  • 加解密:用 pypdf,clone_from 整体克隆保留书签/链接/表单/元数据;加密显式 AES-256;--decrypt 去密码后写出无密码副本。merge 同样走 append 保结构。
  • 安全守卫:所有写出类命令拒绝"输出路径=输入路径"的就地覆盖,防写坏原件。
  • [!] 加密件上传业务系统警示:AES-256(加密字典 /V=5 /R=6)是现代标准,但很多老业务系统(ERP/OA/审核平台)的服务端预览器(老版 pdfbox/iText/pdf.js)不支持,会出现"系统预览打不开"。送审/上传系统的文件建议先上传后加密,或先与对方确认支持 AES-256;仅本地/邮件流转的文件可放心加密。

压缩 / 图片组卷 / 页码

操作 命令示例 说明
压缩(无损优先) python pdf_toolkit.py compress -i a.pdf --target-size 20M 先无损重写;超目标自动转图片重排(dpi 150→40 递减);--keep-text 保文字层;达不成给诚实提示
图片组卷 python pdf_toolkit.py img2pdf -i p1.png p2.jpg -o album.pdf 多图拼一册;--orient 串方向校正(需Tesseract);--max-dim 3000 超大图等比缩小
加页码 python pdf_toolkit.py pagenum -i a.pdf -o a_n.pdf 默认页脚居中 {n};--format "{n}/{total}"、--pos top-right、--start、--color、--font-size;中文页码零字体依赖
  • 压缩:纯文本/矢量为主的文件无损即可达标;扫描件/拍照件因已是位图,转图片重排是现实最优解,但会丢失可选文本层(用 --keep-text 可保留但可能仍超限)。
  • 图片组卷:每张图独立成页,非图片输入自动跳过并告警(不崩);方向校正依赖 Tesseract,未装则跳过。
  • 页码:ASCII 走内置字体精确对齐;CJK 走 PIL 渲染→fitz.Pixmap,不依赖系统字体文件,跨机一致。

批量体检与行业规则库

命令 说明
batch --dir ./inbox --report md 扫描目录(默认 *.pdf,--recursive 递归),逐件 check,聚合 PASS/FAIL
batch --dir ./inbox --dashboard 额外输出 audit-charts 看板 JSON(默认 <dir>/pdf_health_dashboard.json)
batch --dir ./inbox --security 逐件叠加敏感信息(PII/元数据)扫描,外发前批量脱敏自查
check -i a.pdf --profile unicom 叠加行业规则库:大小上限/PDF版本/禁加密/禁AES-256/页面尺寸容差/最少页数
check -i a.pdf --profile ? 列出内置规则库;也支持 --profile /abs/path.json 自定义
check -i a.pdf --report json --report-out r.json 产出 audit-charts 兼容单文件 JSON,可直接喂 zfl-audit-charts 出看板
  • 内置规则库(data/profiles/):unicom.json(≤20M, A4, 禁加密/禁AES-256)、mobile.json(≤15M)、telecom.json(≤20M)、default.json(≤50M, 允许加密)。阈值均为示例,请以实际平台上传要求替换,或放自己的 JSON 到 data/profiles/ 或传绝对路径。
  • 工作流:批量 batch 先摸清全量健康度 → 单件 check --profile 卡行业红线 → FAIL 的 repair 后重测,形成"体检→修复→复测"闭环。
  • 脱敏自查:check --security(或 batch --security)在送审/外发前扫一遍 PII(身份证/手机/银行卡/金额)与元数据,命中为"疑似",脱敏前请人工复核;扫描件先 OCR 才有文本可扫。

上传就绪体检与修复(check / repair)

源自真实事故的第一性原理:"PDF 上传系统后预览打不开、下载下来也打不开"——根源是本地阅读器(WPS/Acrobat)是修复型解析,会静默修复缺 %%EOF、xref 断裂等问题;而业务系统服务端(老版 pdfbox/iText/pdf.js)是严格型解析。所以"本地能打开"在故障排查里是零证据。

命令 检查/动作 说明
check -i a.pdf ①文件头 %PDF- ②文件尾 %%EOF ③startxref 指针 ④pypdf strict 解析+全页对象触达 ⑤pdfium 首页真渲染 ⑥加密标志与 /V 值 双引擎交叉验证;AES-256 件自动提示兼容性;全过 exit 0
repair -i a.pdf -o a_fixed.pdf PyMuPDF 全量重写(garbage=4 清孤儿对象 + clean 规范内容流 + deflate) 修复垃圾头/截尾/xref 断裂;书签/元数据保留;写完自动 strict 复读
  • 工作流建议:上传业务系统前先 check;FAIL 则 repair 后再上传——替代不可靠的"本地打开看看"。
  • 写出自检钩子:orient/merge/extract/annotate/generate/watermark/crypt/flatten 八个写出命令收尾自动 strict 复读+首页渲染,自检失败 exit 1 并保留文件供排查(正常时静默零噪音)。

扁平化(flatten,固化只读)

把标注/水印/全部内容栅格化为不可编辑的只读 PDF,用于送审固化与防篡改。

命令 说明
flatten -i a_marked.pdf -o a_flat.pdf 全文档逐页 150 DPI 栅格化,生成纯图像只读 PDF
flatten -i a.pdf --pages 3-5 -o p.pdf 仅固化并导出指定页(其余页不输出)
flatten -i a.pdf --dpi 200 --quality 90 调高分辨率/质量(体积更大、更清晰)
flatten -i a_enc.pdf --password 123456 加密件需提供密码
  • 与 annotate/watermark 强互补:先 annotate 黄底红框高亮(或 watermark 水印),再 flatten 把标注"烧录"成不可移动、不可删改的固化版本——监理送审资料防篡改的标准动作。
  • 代价(须知):栅格化会丢失可选文字层(不可搜索/复制),这与"只读固化"目标一致;如需保留文字请直接使用 annotate 原文件。
  • 体积控制:默认 150 DPI + JPEG q85 平衡清晰与体积;扫描件/拍照件本就是位图,flatten 后体积接近原图;矢量/文字为主的 PDF flatten 后体积可能变大(像素化),属正常。
  • 安全守卫:拒绝输出路径=输入路径的就地覆盖;收尾自动 strict 复读+首页渲染自检。

常见问题 FAQ

报错含义、安装/网络、大文件 OOM、批量用法等高频问题见同目录 FAQ.md(已随技能一起发布)。

常见问题

5 问
答案由本站依据条目字段整理
PDF工具箱怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_f1d11e73/zfl-pdf-toolkit。安装方式为未标注。装完刷新技能列表或重开客户端。

PDF工具箱支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

PDF工具箱权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

PDF工具箱收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

PDF工具箱用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。