返回 Skill 列表
extension
分类: 开发与工程无需 API Key

PDF转md文件格式

将一个或多个可提取文本的 PDF 转换为完整 Markdown,保留嵌入图片,建立标题层级,修复表格、合并单元格和跨页续表,并将等宽字体代码整理为代码块。用户要求把 PDF、课程讲义、演示文稿或技术手册转换为 Markdown,且需要共享 assets 图片目录、相对图片路径和规范 Markdown 表格时使用。

person作者: will0705hubModelScope

PDF 转 Markdown

使用 scripts/pdf_to_md.py 转换文件。脚本通过 PyMuPDF 提取文字、嵌入图片和表格,按页面阅读顺序组织内容,依据原始字号生成至多三级标题,并将相邻的等宽字体文本转换为代码块。

工作流程

  1. 检查输入 PDF,确定共享图片目录和图片命名前缀。处理同一系列文档时,使用同一个 assets/ 目录和稳定前缀,例如 agent-mem
  2. 检查 PyMuPDF 是否可用;若 import fitz 失败,在当前 Python 环境安装 pymupdf
  3. 运行转换脚本。它会在每个 PDF 同目录生成同名 .md,提取 PNG 图片,并通过相对路径引用 assets/<前缀>-N.png
  4. 核验输出:页码标记与 PDF 页数一致、所有图片引用均存在、共享 assets 目录内图片编号唯一、代码块起止标记成对、每个 Markdown 表格各行列数一致。
  5. 交付 Markdown 文件路径和图片目录;不要在用户工作区遗留临时转换脚本。

命令

python <技能目录>\scripts\pdf_to_md.py `
  "C:\docs\1.介绍.pdf" "C:\docs\2.实战.pdf" `
  --assets-dir "C:\docs\assets" --prefix agent-mem

脚本会读取目标图片目录中已有的最大 <前缀>-N.png 编号并从下一号开始,多个 PDF 共用一个 assets 目录时不会覆盖已有图片。

质量要求

  • 保留所有可提取文字块的阅读顺序,并保留 <!-- 第 N 页 --> 页码标记以便追溯。
  • 将每张嵌入式位图保存为 PNG,并将其 Markdown 引用放在接近原始垂直位置处。
  • 将 PDF 表格转换为标准 Markdown 表格;用 <br> 保留单元格内换行,并转义单元格中的 |
  • 按表头真实列锚点折叠合并单元格产生的空列;将首列为空的碎片行合并到上一逻辑行。
  • 跨页表格在每页分别输出续表,不要把页码标记包进表格,也不要把表格文字重复输出为普通段落。
  • 对复杂合并表格进行抽样复核;若自动识别仍产生断词、重复片段或伪行,依据 PDF 原表手工修正。
  • 仅对视觉上突出的文字使用 ######;不要把等宽字体代码片段误转成标题。
  • 将连续的纯等宽字体文本转为 text 代码块;孤立的标识符保留为行内代码。
  • 保持 PDF 与 Markdown 的基础文件名一致,并使用 UTF-8 编码。
  • 若 PDF 为扫描件或几乎没有可提取文本,明确说明需要先进行 OCR,不能静默产出不完整的 Markdown。