PDF 工具箱
v1.0.0PDF 工具箱技能。支持 PDF 合并、拆分、旋转、压缩、格式转换、文字提取、水印添加等常用操作。使用场景:(1) 合并多个 PDF,(2) 拆分 PDF 页面,(3) 旋转/调整方向,(4) 压缩 PDF 大小,(5) PDF 转图片/Word,(6) 提取 PDF 文字,(7) 添加/移除水印。
Security Scan
OpenClaw
Suspicious
medium confidencePurpose & Capability
技能描述列出合并、拆分、旋转、压缩、格式转换、提取、水印、加密等功能,但代码仓内只包含 merge, split, rotate, compress, extract_text 五个脚本。SKILL.md 中还调用了 convert_pdf.py 和 watermark.py,且引用的 references/*.md 文档也不存在。声明的功能与实际提供的脚本不匹配,存在能力夸大或缺失。
Instruction Scope
SKILL.md 明确指示通过运行本地脚本来执行操作(bash 示例、单文件命令等),这与包含的脚本大体一致;但它也指向了不存在的脚本(convert_pdf.py, watermark.py)和缺少的参考文档,运行这些指令会失败或导致代理尝试查找/下载缺失资源。已包含的脚本只访问本地文件系统并调用本地 Ghostscript(可选),未见网络请求或读取未声明的环境变量。
Install Mechanism
这是 instruction-only(无安装 spec),风险较低;脚本依赖 pypdf,且 compress 脚本会在可用时调用本地 gs(Ghostscript)。没有自动下载或执行来自远程 URL 的代码,但环境必须预先装有 pypdf 和(可选)gs,否则脚本会报错。
Credentials
声明中没有请求任何环境变量、凭证或配置路径;脚本也没有读取环境变量或外部凭证。这与其本地文件处理用途是一致且比例适当的。
Persistence & Privilege
技能未要求常驻(always=false)且默认允许模型调用(平台默认)。脚本不会修改其他技能或系统级配置。无持久权限或自我安装行为被发现。
What to consider before installing
要点与建议:
- 不要直接在敏感或生产文件上运行;先在隔离环境或使用示例 PDF 测试。
- 核实缺失功能:SKILL.md 提到的 convert_pdf.py、watermark.py、以及 references/*.md 都未包含。向作者/来源确认这些文件来自何处,或等待包含完整实现再使用。
- 依赖安装:脚本需要 Python 的 pypdf 包,compress 脚本在有 Ghostscript 时会调用本地 gs。确保在受控环境中安装依赖并理解 gs 的行为。
- 安全检查:已包含脚本只操作本地文件、不会联网或读取凭证,这是好的,但仍应审阅代码(你已看到)并在沙箱中运行以确认没有未显式的外部依赖或行为。
- 如果你打算让代理自动调用该技能,注意当代理尝试运行 SKILL.md 中缺失的脚本时可能会失败或尝试检索外部资源;在允许自动调用前修复/补齐缺失脚本或限制技能为仅手动触发。
总结:该技能的已提供代码看起来无直接恶意,但文档与实现不一致(宣称的功能更广),因此建议先要求/验证完整实现或仅在受控环境中使用。Like a lobster shell, security has layers — review code before you run it.
latest
PDF 工具箱
核心功能
提供一站式 PDF 处理解决方案,满足日常办公、学习中的各种 PDF 处理需求。
支持的操作
- 📎 合并 - 多个 PDF 合并成一个
- ✂️ 拆分 - 按页码拆分 PDF
- 🔄 旋转 - 调整页面方向
- 📦 压缩 - 减小 PDF 文件大小
- 📝 转换 - PDF 转 Word/图片/文本
- 📄 提取 - 提取 PDF 中的文字/图片
- 💧 水印 - 添加或移除水印
- 🔒 加密 - 设置密码保护
使用方式
1. 合并 PDF
用户请求示例:
- "把这几个 PDF 合并成一个"
- "合并 report1.pdf, report2.pdf, report3.pdf"
命令:
python scripts/merge_pdf.py --output merged.pdf file1.pdf file2.pdf file3.pdf
2. 拆分 PDF
用户请求示例:
- "把这个 PDF 拆分成单独页面"
- "提取第 1-5 页"
命令:
python scripts/split_pdf.py --input input.pdf --pages 1-5 --output output.pdf
3. 旋转 PDF
用户请求示例:
- "把这个 PDF 顺时针旋转 90 度"
- "所有页面旋转 180 度"
命令:
python scripts/rotate_pdf.py --input input.pdf --angle 90 --output output.pdf
4. 压缩 PDF
用户请求示例:
- "压缩这个 PDF,太大了"
- "把 PDF 压缩到 5MB 以内"
命令:
python scripts/compress_pdf.py --input input.pdf --output output.pdf --quality medium
5. PDF 转换
用户请求示例:
- "把 PDF 转成 Word"
- "PDF 转图片"
命令:
python scripts/convert_pdf.py --input input.pdf --format word --output output.docx
python scripts/convert_pdf.py --input input.pdf --format image --output-dir images/
6. 提取文字
用户请求示例:
- "提取这个 PDF 的文字内容"
- "把 PDF 转成文本"
命令:
python scripts/extract_text.py --input input.pdf --output output.txt
7. 添加水印
用户请求示例:
- "给 PDF 添加水印"
- "加上'机密'两个字"
命令:
python scripts/watermark.py --input input.pdf --text "机密" --output output.pdf
质量选项
压缩质量
| 选项 | 说明 | 适用场景 |
|---|---|---|
| low | 高压缩,质量较低 | 邮件发送、网页展示 |
| medium | 平衡压缩和质量 | 日常使用 |
| high | 低压缩,保持质量 | 打印、存档 |
转换格式
| 格式 | 说明 | 保留内容 |
|---|---|---|
| word | 转 Word 文档 | 文字、格式、图片 |
| image | 转图片(PNG) | 每页一张图片 |
| text | 纯文本 | 仅文字内容 |
| html | 网页格式 | 文字、基本格式 |
常见问题
Q: 合并后顺序不对怎么办?
A: 按文件名排序,确保文件名有序(如 01.pdf, 02.pdf)
Q: 压缩后文字模糊?
A: 使用 high 质量选项,或降低压缩比例
Q: 提取的文字乱码?
A: 可能是扫描版 PDF,需要 OCR 功能(需额外安装)
Q: 加密的 PDF 怎么处理?
A: 先提供密码解密,处理后再加密
批量处理
支持批量操作多个文件:
# 批量旋转当前目录所有 PDF
for f in *.pdf; do
python scripts/rotate_pdf.py --input "$f" --angle 90 --output "rotated_$f"
done
# 批量压缩
for f in *.pdf; do
python scripts/compress_pdf.py --input "$f" --output "compressed_$f" --quality medium
done
参考资源
- 脚本使用说明:见
references/scripts.md - 常见问题解答:见
references/faq.md - 批量处理示例:见
references/batch-examples.md
Comments
Loading comments...
