先判断是否值得安装 Skill
如果只是把一个普通文件转换一次,网页版通常更快:打开文件、检查 Markdown、下载结果即可。
当 Codex 或 Claude Code 已经在处理这些文件时,Agent Skill 才更有价值。智能体可以在同一个任务里读取报告、修改 Markdown、生成另一种格式,并验证最终文件,不必把内容搬到独立的转换网站再传回来。
| 使用场景 | 更合适的起点 |
|---|---|
| 一个简单文件,只转换一次 | 网页版转换器 |
| 快速编辑或预览 Markdown | 网页版工具 |
| 在 Codex 或 Claude Code 中反复转换 | Agent Skill |
| PDF → Markdown → DOCX 等连续流程 | Agent Skill |
| 需要智能体验证生成文件 | Agent Skill |
| 必须完整复刻复杂排版 | 原格式的专业流程加人工检查 |
把 Markdown 当作可编辑的中间层
Markdown 能清楚表示标题、段落、列表、链接、代码和不少简单表格,既方便人阅读,也方便智能体直接修改。因此它适合放在源文件和最终交付文件之间。
这个中间步骤也决定了保真边界。PPTX 转成 Markdown 后,保留下来的是幻灯片里的可读内容,不是原来的版式、动画、字体和媒体。之后再生成 PPTX,也只能根据 Markdown 新建一份演示文稿,无法自动恢复已经丢失的设计。
当内容比像素级还原更重要时,这套流程才合适。
安装 Markdown Converter Agent Skill
这个 Skill 使用开放的 Agent Skills 格式,可供 Codex、Claude Code 和兼容客户端使用,需要 Node.js 20 或更高版本。转换运行时、OCR、受支持的语言数据、字体、渲染器和输出验证器都包含在仓库中。
MARKDOWN_CONVERTER_DIR 应指向安装后包含 SKILL.md 的目录,不要假设当前终端正好位于 Skill 仓库。
npx skills add agent-tools-lab/markdown-converter --skill markdown-converternode "$MARKDOWN_CONVERTER_DIR/scripts/runtime/convert.mjs" INPUT --to FORMAT -o OUTPUT把有文字层的 PDF 转成 Markdown
先在 PDF 阅读器里尝试选择一句话。如果文字可以正常选中,应优先使用文字提取,而不是 OCR。
输出通常能保留段落、标题和项目符号等线索,但 PDF 本质上记录的是页面位置,不是完整的语义结构。多栏排版、复杂表格、公式、脚注和特殊字体仍可能被简化或出现阅读顺序问题。
node "$MARKDOWN_CONVERTER_DIR/scripts/runtime/convert.mjs" report.pdf --to markdown -o report.mdreport.md — 从 PDF 文字层生成的可编辑草稿只对图片型页面使用 OCR
扫描 PDF 可能看起来有文字,实际上每页只是图片。Skill 会先读取原生文字,仅对没有可用文字层的页面执行本地 OCR。
当前内置英语、西班牙语、德语、日语和简体中文模型。单个 PDF 上限为 30 MB、100 页,其中最多 20 页进入 OCR。
OCR 结果只能作为待校对草稿。姓名、日期、金额、标点、标题和表格都要与扫描图逐项核对;手写文字、低清页面和复杂表格的精确还原不在能力承诺内。
node "$MARKDOWN_CONVERTER_DIR/scripts/runtime/convert.mjs" scan.pdf --to markdown --ocr-language chi_sim -o scan.md人名 · 数字 · 日期 · 阅读顺序 · 表格| OCR 语言 | 代码 |
|---|---|
| 英语 | eng |
| 西班牙语 | spa |
| 德语 | deu |
| 日语 | jpn |
| 简体中文 | chi_sim |
把 Word 文档转成可编辑的 Markdown
以文字为主的 DOCX 最适合转换。段落、标题、列表、链接和简单表格都比较容易映射到 Markdown,转换后也方便智能体继续改写或发布。
不要期待页面布局、嵌入媒体、批注、修订记录、宏、浮动对象、字体和间距被完整保留。如果设计本身就是资产,应保留并编辑原始 DOCX。
node "$MARKDOWN_CONVERTER_DIR/scripts/runtime/convert.mjs" report.docx --to markdown -o report.md检查标题、列表和表格,再编辑或导出其他格式从 Markdown 生成可搜索的 PDF
PDF 输出不是把每页截图后塞进文件,而是生成一份新的 A4 文档,并写入真实文字对象。受支持的字符可以搜索、选择、复制和提取。
如果流程一开始来自另一份 PDF,原 PDF 的页面设计不会自动回来。最终结果反映的是经过检查的 Markdown 和生成器的排版。
node "$MARKDOWN_CONVERTER_DIR/scripts/runtime/convert.mjs" notes.md --to pdf -o notes.pdf打开 notes.pdf,选择并复制一段代表性文字正确理解支持格式
非 Markdown 输入会先变成可编辑的 Markdown。需要第二种输出时,文件也是从这个中间结果生成,而不是直接复刻最初的源文件。
部分名称需要额外说明:JSON 输出是 Markdown 词法标记树;Confluence 输出是旧版 Wiki Markup;Notion 输出是面向导入的 Markdown,并不调用 Notion API。
| 类型 | 示例 | 主要边界 |
|---|---|---|
| 输入 | PDF、DOCX、XLSX/XLS、PPTX、HTML、TXT、CSV、JSON、XML | 内容和结构进入 Markdown,版式与应用行为可能丢失 |
| 文档输出 | PDF、DOCX、XLSX、PPTX、EPUB | 根据 Markdown 新建文件,不是还原早期源文件 |
| 发布与文本 | HTML、LaTeX、AsciiDoc、RTF、RST、Confluence、Notion、Reveal、WeChat | 每种目标都有自己的兼容限制 |
| 数据与图片 | CSV、Markdown 标记 JSON、思维导图 JSON、PNG、JPG、Card | 数据输出需要合适的源结构;Card 是摘要图 |
在交付前验证生成文件
命令返回成功,不代表内容一定正确。每次生成文件后都要运行内置验证器,并在实际使用该格式的应用中打开代表性内容。
验证器失败就应视为转换失败。保留源文件,始终把输出写到新的路径,不要覆盖唯一的原件。
- 确认文件存在、非空,并能在目标应用中打开。
- 抽查标题、段落、列表和表格是否与源文件一致。
- 确认中文以及其他非 ASCII 字符显示正常。
- PDF 至少选择或提取一段真实文字。
- OCR 内容至少核对姓名、数字、标题和一个完整段落。
python3 "$MARKDOWN_CONVERTER_DIR/scripts/verify_output.py" notes.pdf --format pdf标题 · 段落 · 列表 · 表格 · 链接 · 中文显示 · 文字提取本地处理不等于无损转换
生成文件不会被加入产品 Logo、水印、推广页脚、署名链接或隐藏的产品元数据。
但是,本地执行无法消除格式之间的差异。像素级页面布局、电子表格公式、批注、修订记录、动画、演讲者备注、嵌入媒体、复杂公式和复杂表格如果非常重要,就应继续使用原格式的专业工作流。
相关工具
常见问题
Codex 可以用这个 Skill 把 PDF 转成 Markdown 吗?
可以。文字型 PDF 使用本地文字提取;图片型页面可在文档规定的语言、大小和页数限制内使用本地 OCR。
Claude Code 也能使用同一个 Markdown Converter 吗?
可以。仓库采用产品无关的 Agent Skills 格式,适用于 Codex、Claude Code 和兼容客户端。
所有 PDF 都需要 OCR 吗?
不需要。有可用文字层的 PDF 应直接提取文字;OCR 只用于没有可读原生文字的图片页面。
Word、Excel 和 PowerPoint 能转成 Markdown 吗?
支持 DOCX、XLSX/XLS 和 PPTX 输入。转换重点是可读内容与基本结构,不承诺 Office 版式、公式、动画或媒体完整保留。
Markdown 能重新生成 Word 或 PowerPoint 吗?
可以输出 DOCX 和 PPTX,但它们是根据 Markdown 新建的文件,不是对早期源文件的精确还原。
生成的 PDF 可以搜索文字吗?
支持的字符可以搜索和选择。PDF 写入真实文字对象,验证步骤也会检查是否存在非空的可提取文字层。
什么时候更适合使用 ilovemd.net?
只想在浏览器中完成一次转换、编辑或预览时。需要重复处理、多步转换、OCR 或生成物验证时,再使用 Agent Skill。
在哪里安装 Markdown Converter?
仓库地址是 https://github.com/agent-tools-lab/markdown-converter,安装命令为 npx skills add agent-tools-lab/markdown-converter --skill markdown-converter。
