Rylai PDF 是做什么的?
由 Rylai 编写的原始 Codex-Hermes-Claude 技能。
使用本地文件和确定性工具。除非用户明确要求原地替换,否则保留源文档。绝不凭空发明密码、嵌入凭据或将文档上传到外部服务,除非获得直接批准。
运行时
使用 Python 3 并搭配:
pypdf用于页面级别的检查和编辑。pdfplumber用于需要更高质量文本提取的场景。pypdfium2或 Popplerpdftoppm用于可选的页面渲染。- 仅在将 Office 源文件转换为 PDF 时使用 LibreOffice。
安装前先探测:
python -c "import pypdf; print(pypdf.__version__)"
python -c "import pdfplumber; print(pdfplumber.__version__)"
仅安装缺失的 Python 包:
python -m pip install pypdf pdfplumber pypdfium2
解析相对于此技能目录的 scripts/rylai_pdf.py。
工作流程
- 确认输入路径、请求的操作、输出路径和页面范围。
- 在编辑不熟悉或加密的 PDF 之前,先运行
info命令。 - 写入新的输出路径。仅当需要替换时才使用
--force。 - 重新打开结果,检查页数、元数据以及在适用情况下的提取文本。
- 对于布局敏感的工作,渲染代表性页面并检查 PNG 输出。
- 当 Poppler、LibreOffice、OCR 或其他可选依赖项缺失时,报告跳过的检查。
对于没有有效文本层的扫描页面,使用可用的本地 OCR 引擎。保留原始 PDF,并说明使用了哪个 OCR 工具和语言模型。
捆绑的 CLI
检查:
python scripts/rylai_pdf.py info input.pdf
提取选中页面:
python scripts/rylai_pdf.py extract input.pdf output.txt --pages 1-3,7
合并:
python scripts/rylai_pdf.py merge output.pdf first.pdf second.pdf
将选中页面拆分为单独文件:
python scripts/rylai_pdf.py split input.pdf output-pages --pages 2-5
将选中页面顺时针旋转:
python scripts/rylai_pdf.py rotate input.pdf rotated.pdf 90 --pages 1,3
使用本地 PDFium 或 Poppler 渲染:
python scripts/rylai_pdf.py render input.pdf rendered-pages --dpi 144
仅当用户提供了该文档的密码时才添加 --password。
质量标准
- 输出文件打开时不带修复警告。
- 页面顺序、页数、旋转和选定的范围与请求一致。
- 提取的文本不会静默地为空;能够识别扫描页面。
- 渲染的页面没有意外裁剪或空白输出。
- 源文件、临时文件、密码或用户路径不附带在此技能中。