wechat-robot-skills/skills/pdf/SKILL.md
2026-09-09 12:30:35 +08:00

5.2 KiB
Raw Blame History

name description
pdf 读取、OCR、创建、设计排版、转换和处理 PDF。支持本地文件与 HTTPS PDF、扫描件和任务图像,以原生文本提取及本地 OCR 为主,模型辅助疑难复核;提供 HTML/CSS 出版排版、文本生成、Office/LaTeX 导出、表单、页面与元数据操作。用户要求阅读或总结 PDF、识别扫描件、制作报告/简历/提案 PDF 或编辑现有 PDF 时使用;Office 主文档编辑由对应 skill 处理。

PDF 读取、设计与处理

运行约定

  • 当前机器人不能直接运行 Bash、Python、Node.js 或系统命令。只通过 execute_skill_script 调用下列真实存在的固定脚本;参数是文件、文本、页码或受控 JSON,不能传 shell 命令、-c、eval、代码片段或解释器命令。固定脚本可在内部调用预置引擎,调用者不直接执行底层程序。
  • scripts/_pdf_common.py、scripts/_render_html.cjs 是内部实现,不直接执行;不调用原 pdf-skill 的 shell 安装器、通用 Python/Node CLI,不创建临时可执行脚本。
  • 依赖只在基础镜像构建时安装。任务中不运行 pip/npm/apt、不下载浏览器、TeX 包或 OCR 模型;缺失时报告具体依赖和镜像需更新,不能假装处理成功。
  • 最终 PDF 写入 /usr/local/src/pdf/;缓存、源 HTML/JSON、预览放在 /usr/local/src/pdf/tmp/<任务名>/。传绝对路径,保留用户源文件。--overwrite 仅用于本任务已生成的旧产物。
  • 每次检查返回 JSON;ok: false 先处理原因。requires_visual_review、needs_review 或 warnings 需要实际核验,程序运行成功不代表内容和版式通过。
  • HTTPS PDF 用 download_pdf.py,其他素材用 download_attachment.py。不在回复中复述敏感 URL 查询参数;加密 PDF 请用户提供已解密副本,密码不进入工具参数。

按任务读取

任务 指南
阅读、总结、扫描页、图片文字、图表辅助识别 读取与 OCR
创建报告、提案、简历、学术或品牌 PDF 设计规范 + HTML 创建接口
Office/LaTeX 导出,PDF 内容重建为 Office 转换
表单填写、裁剪、嵌入图片、元数据 编辑
下载、分段提取、表格、简单文本 PDF、合并/拆分/旋转、渲染与清理 原有操作接口
镜像缺包或能力边界 依赖说明

固定脚本

脚本 用途
scripts/download_pdf.py 安全下载并校验不超过 25 MiB 的 HTTPS PDF
scripts/download_attachment.py 下载不超过 25 MiB 的任务附件
scripts/inspect_pdf.py 页数、尺寸、加密、元数据与表单数量
scripts/extract_text.py 多引擎正文提取、逐页质量检测和字符游标
scripts/ocr_text.py 对指定 PDF 页执行离线 OCR,标记局部疑难区域
scripts/ocr_image.py 对单张任务图片执行离线 OCR
scripts/extract_tables.py 原生 PDF 表格分页提取
scripts/render_pdf.py 按页输出 PNG,供版式检查或疑难辅助复核
scripts/create_pdf.py 简单文本/Markdown 生成 PDF
scripts/create_design_pdf.py 静态 HTML/CSS、图表和公式设计排版
scripts/convert_to_pdf.py Office 文件导出 PDF
scripts/compile_latex.py 仅用镜像缓存资源编译 LaTeX
scripts/edit_pdf.py 表单、裁剪、元数据和嵌入图片
scripts/manage_pdf.py 合并、拆分、旋转
scripts/cleanup_pdf_temp.py 清理本任务临时目录

工作原则

  1. 阅读先检查 PDF,再提取可靠原生文本;扫描页或图片文字以本地 OCR 为主。只有低置信度、手写、复杂表格/公式、阅读顺序冲突或非文本图形理解需要时,才用大模型复核相关页/区域。不要把整个扫描件直接交给大模型代替 OCR。
  2. 创建设计先确认读者、用途、内容与输出限制,按需选择封面、配色和字体层级。用户模板、品牌、大纲、语言与篇幅优先;不强加独立封面,不为凑页数填充或删除内容。
  3. 简单文字选 create_pdf.py;需要封面、图文、页眉页脚、交叉引用、数学公式时选 create_design_pdf.py。通过 write_file 写静态内容文件,不写可执行代码。HTML 禁止脚本、事件处理程序和外部资源;公式、流程图由固定引擎本地处理。
  4. 编辑现有 PDF 保留内容与结构。裁剪不等于脱敏;表单字段值写入不等于外观正确;PDF 转 Office 应按提取/OCR 后重建来规划,不能承诺无损逆转换。
  5. 创建、转换或修改后重新检查页数、文本与关键数字,再渲染全部相关页逐页核验封面、字体、表格、公式、图表、页码、裁切和空白页。要求精确页数时使用 --expected-pages。修正后检查最新产物,才交付。
  6. 内容引用可核验。用户提供的材料可直接引用;新增时效、专业或不确定事实使用当前可用搜索工具查证,不编造统计、论文或参考文献。图片识别的猜测与原文分开标记。