{
  "schemaVersion": "1.0",
  "item": {
    "slug": "ofdreader",
    "name": "Ofd Reader skill",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/zhanjian1972/ofdreader",
    "canonicalUrl": "https://clawhub.ai/zhanjian1972/ofdreader",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/ofdreader",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ofdreader",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "scripts/install_dependencies.py",
      "scripts/ofd_to_markdown.py",
      "scripts/ofd_to_text.py",
      "references/ofd-format.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "ofdreader",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-06T08:17:06.795Z",
      "expiresAt": "2026-05-13T08:17:06.795Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ofdreader",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ofdreader",
        "contentDisposition": "attachment; filename=\"ofdreader-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "ofdreader"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/ofdreader"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/ofdreader",
    "agentPageUrl": "https://openagent3.xyz/skills/ofdreader/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ofdreader/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ofdreader/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "OfdReader",
        "body": "OFD（Open Fixed-layout Document）文档读取和转换工具。从 OFD 文件中提取内容并转换为 Markdown。"
      },
      {
        "title": "提取纯文本",
        "body": "python scripts/ofd_to_text.py <ofd文件路径>\n\n输出到文件：\n\npython scripts/ofd_to_text.py <ofd文件路径> output.txt"
      },
      {
        "title": "转换为 Markdown",
        "body": "python scripts/ofd_to_markdown.py <ofd文件路径>\n\n输出到文件：\n\npython scripts/ofd_to_markdown.py <ofd文件路径> output.md"
      },
      {
        "title": "工作流程",
        "body": "验证文件：确认 OFD 文件存在且格式有效（OFD 本质是 ZIP 压缩包）\n\n\n提取内容：\n\n解压 OFD 文件\n解析内部 XML 结构\n提取 TextCode 和 TextContent 元素\n\n\n\n格式转换：\n\n文本模式：直接拼接所有文本内容\nMarkdown 模式：识别段落、标题和表格，转换为对应 Markdown 语法\n\n\n\n输出结果：打印到控制台或写入文件"
      },
      {
        "title": "脚本说明",
        "body": "scripts/ofd_to_text.py：提取纯文本，保留所有文字内容但不处理格式\nscripts/ofd_to_markdown.py：转换为 Markdown，保留段落、标题和表格结构\nscripts/install_dependencies.py：安装可选依赖（核心功能使用标准库）"
      },
      {
        "title": "OFD 格式说明",
        "body": "OFD 文件结构：\n\n根目录包含 OFD.xml（文档清单）\nDoc_0/ 目录包含文档内容\n内容以 XML 格式存储，使用 http://www.ofdspec.org/2016 命名空间\n\n关键元素：\n\nTextCode：文本内容\nParagraph：段落\nTable：表格\nRow/Cell：表格行和单元格"
      },
      {
        "title": "限制和注意事项",
        "body": "格式保真度：OFD 支持复杂的排版布局，脚本仅提取逻辑内容，无法完全保留视觉效果\n\n\n表格识别：基于 XML 结构推断表格，复杂表格可能转换不完整\n\n\n标题检测：使用启发式规则（短文本、特定模式），可能误判\n\n\n编码：OFD 通常使用 UTF-8，脚本自动处理编码\n\n\n依赖：核心脚本使用 Python 标准库（zipfile, xml.etree.ElementTree），无需额外依赖"
      },
      {
        "title": "使用示例",
        "body": "提取 OFD 文档文本：\n\n# 用户询问时\npython \"C:\\Users\\zhan\\.claude\\plugins\\skills\\OfdReader\\scripts\\ofd_to_text.py\" \"document.ofd\" \"extracted.txt\"\n\n转换为 Markdown：\n\npython \"C:\\Users\\zhan\\.claude\\plugins\\skills\\OfdReader\\scripts\\ofd_to_markdown.py\" \"document.ofd\" \"document.md\""
      },
      {
        "title": "故障排除",
        "body": "错误：\"文件不是有效的 OFD (ZIP) 格式\"\n\n文件可能损坏或不是 OFD 格式\n检查文件扩展名是否为 .ofd\n\n错误：\"OFD 文件不存在\"\n\n检查文件路径是否正确\nWindows 路径需要用引号括起来\n\n提取内容为空\n\nOFD 文件可能是扫描版图片（无文本层）\n尝试用其他工具打开确认是否有可提取的文本\n\n表格格式混乱\n\n复杂表格可能无法完美转换\n考虑使用 ofd_to_text.py 提取纯文本后手动整理"
      }
    ],
    "body": "OfdReader\n\nOFD（Open Fixed-layout Document）文档读取和转换工具。从 OFD 文件中提取内容并转换为 Markdown。\n\n快速开始\n提取纯文本\npython scripts/ofd_to_text.py <ofd文件路径>\n\n\n输出到文件：\n\npython scripts/ofd_to_text.py <ofd文件路径> output.txt\n\n转换为 Markdown\npython scripts/ofd_to_markdown.py <ofd文件路径>\n\n\n输出到文件：\n\npython scripts/ofd_to_markdown.py <ofd文件路径> output.md\n\n工作流程\n\n验证文件：确认 OFD 文件存在且格式有效（OFD 本质是 ZIP 压缩包）\n\n提取内容：\n\n解压 OFD 文件\n解析内部 XML 结构\n提取 TextCode 和 TextContent 元素\n\n格式转换：\n\n文本模式：直接拼接所有文本内容\nMarkdown 模式：识别段落、标题和表格，转换为对应 Markdown 语法\n\n输出结果：打印到控制台或写入文件\n\n脚本说明\nscripts/ofd_to_text.py：提取纯文本，保留所有文字内容但不处理格式\nscripts/ofd_to_markdown.py：转换为 Markdown，保留段落、标题和表格结构\nscripts/install_dependencies.py：安装可选依赖（核心功能使用标准库）\nOFD 格式说明\n\nOFD 文件结构：\n\n根目录包含 OFD.xml（文档清单）\nDoc_0/ 目录包含文档内容\n内容以 XML 格式存储，使用 http://www.ofdspec.org/2016 命名空间\n\n关键元素：\n\nTextCode：文本内容\nParagraph：段落\nTable：表格\nRow/Cell：表格行和单元格\n限制和注意事项\n\n格式保真度：OFD 支持复杂的排版布局，脚本仅提取逻辑内容，无法完全保留视觉效果\n\n表格识别：基于 XML 结构推断表格，复杂表格可能转换不完整\n\n标题检测：使用启发式规则（短文本、特定模式），可能误判\n\n编码：OFD 通常使用 UTF-8，脚本自动处理编码\n\n依赖：核心脚本使用 Python 标准库（zipfile, xml.etree.ElementTree），无需额外依赖\n\n使用示例\n\n提取 OFD 文档文本：\n\n# 用户询问时\npython \"C:\\Users\\zhan\\.claude\\plugins\\skills\\OfdReader\\scripts\\ofd_to_text.py\" \"document.ofd\" \"extracted.txt\"\n\n\n转换为 Markdown：\n\npython \"C:\\Users\\zhan\\.claude\\plugins\\skills\\OfdReader\\scripts\\ofd_to_markdown.py\" \"document.ofd\" \"document.md\"\n\n故障排除\n\n错误：\"文件不是有效的 OFD (ZIP) 格式\"\n\n文件可能损坏或不是 OFD 格式\n检查文件扩展名是否为 .ofd\n\n错误：\"OFD 文件不存在\"\n\n检查文件路径是否正确\nWindows 路径需要用引号括起来\n\n提取内容为空\n\nOFD 文件可能是扫描版图片（无文本层）\n尝试用其他工具打开确认是否有可提取的文本\n\n表格格式混乱\n\n复杂表格可能无法完美转换\n考虑使用 ofd_to_text.py 提取纯文本后手动整理"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/zhanjian1972/ofdreader",
    "publisherUrl": "https://clawhub.ai/zhanjian1972/ofdreader",
    "owner": "zhanjian1972",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/ofdreader",
    "downloadUrl": "https://openagent3.xyz/downloads/ofdreader",
    "agentUrl": "https://openagent3.xyz/skills/ofdreader/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ofdreader/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ofdreader/agent.md"
  }
}