Files
pdf-to-md-test/llm-pdf-to-md-prompt.md
T
2026-06-10 08:26:08 +08:00

5.8 KiB
Raw Blame History

PDF 洗 MD — LLM 提示词(v4

用途:Python PyMuPDF 提取原始文本 →喂给 LLM → LLM 按此提示词整理成干净 Markdown 适用范围:通用技术文档(不限于 ST 芯片手册)


原始材料说明

  • 源文件:技术参考手册 / 数据手册 / 规格书 / 标准文档
  • PDF 通过 PyMuPDF 提取,存在以下典型问题:
    • 页眉页脚残留(文档名、版本号、页码)
    • 表格列裂、单元格错位、跨行跨列丢失
    • 标题层级丢失或降级
    • 图片/框图区域只剩占位符或空行
    • 多栏排版文本顺序混乱

一、目录(TOC)处理

不混在正文页中,单独生成文件 00_目录.md

文件格式(三列严格按此顺序):

| 章节号 | 标题 | 页码 |
|--------|------|------|
| 1 | About this document | 12 |
| 1.1 | Typographical conventions | 13 |
  • 列顺序固定:章节号 | 标题 | 页码(不可颠倒)
  • 按章节号数字顺序排列(同一顶级章节的子章节排在一起)
  • 不要点号填充(不要 1.1.1 .......... 15 这种,用纯表格)
  • 封面页(p1)不入目录,目录本身不入目录

二、文件名生成规则

每页正文对应一个独立 MD 文件,规则如下:

规则一:页在 TOC 中有映射章节号_标题_p{页码}.md

  • 章节号中 . 原样保留,不替换
  • 标题只取英文/数字/中文,空格替换为下划线,总长不超过 200 字符
  • 中文标题直接保留,不强制翻译为拼音
  • 多段标题只保留第一段

示例:

2.1.1_Bus_matrices_p110.md
1.3.1_System_level_interface_p14.md

规则二:页不在 TOC 中{页类型}_p{页码}.md

示例:

List_of_tables_p10.md
Revision_history_p260.md
Figure_list_p8.md

规则三:页类型也未知p{页码}_unknown.md


三、正文页处理要求

1. 正文内容 — 逐字保留,与原文完全一致

  • 不改写、不概括、不翻译、不遗漏
  • 技术术语、缩写、信号名保留原文
  • 数值、地址、偏移量、寄存器名逐字保留
  • 换行位置与原文保持一致

2. 表格 — 严格还原原始结构

  • PDF 提取后表格经常列裂或单元格错位
  • 以内容语义为准,合并被拆散的单元格
  • 保留原始列数、行数、合并单元格结构
  • 不省略任何列,用 | 分隔
  • 表格表头行(如 "Mnemonic | Operands | Brief description | Flags | Page")和表格标题行(如 "Table 21. Cortex-M4 instructions")是独立于数据行的元数据,不要作为数据行写入表格:
    • 表头行:单独提取为表格的第一行(加粗或作为表头分隔线后第一行)
    • 表格标题行(如 "Table 21."):单独一行写在表格上方,用加粗 **Table X. 标题** 格式,不混入表格内
  • 寄存器位域表保留 bit31...bit0 从左到右顺序
  • 多栏表格(2栏及以上):优先保留为 Markdown 多栏表格格式(每栏对应一列),栏间用 | 分隔;同一格内需要换行时用 <br> 换行,不要拆成普通段落或列表

3. 排版 — 保持原文档版式

  • 缩进、空行数量与原文一致
  • 列表项层级和顺序不变
  • 不添加原文没有的解释性文字
  • 寄存器值、路径名用 ... 包裹保持等宽

4. 框图 / Figure — 通过 Markdown 图片链接引用截图

  • 发现 "Figure"、"图"、"Diagram"、"Block diagram" 等图形区域
  • 先写标题文字,再在标题下方插入图片占位符
    • 标题格式:**Figure X. 图标题文字**(加粗保留原标题)
    • 占位符:![图 X](imgs/page_{页码}_fig_{编号}.png)
  • 链接路径为相对路径,只使用正斜杠 / 作为分隔符(禁止反斜杠 \
  • 禁止绝对路径,所有路径相对于 MD 文件所在目录
  • 截图由后续步骤单独生成,此处只生成占位符
  • 不在正文中用文字描述图形内容(标题文字除外,原样保留)

5. 标题层级 — 根据章节号判断

  • "X.X.X" 格式:一级=1,二级=1.1,三级=1.1.1,四级=1.1.1.1
  • 一级 → ##,二级 → ###,三级 → ####,四级 → #####
  • 标题文字取自 PDF 原文,不改写

6. 页眉页脚清理

  • 删除所有包含文档名、版本号、页码格式(如 "1/262")的独立行
  • 删除版权声明、空白占位行
  • 正文第一行前不留多余空行

7. 关于文件名中的页码

  • 页码使用 PDF 物理页号(从封面 p1 开始计数)
  • 封面(p1)不生成正文 MD 文件,只截图存档
  • 文件名中的 p{页码} 对应 PDF 物理页号,而非内容章节号

8. 寄存器描述中的缩写(r / rw / rc_w0 等)

  • 在寄存器描述表格中出现的读写属性缩写(r、rw、rc_w0、rc_w1、w、t、Res.)保留原文
  • 不要翻译,不要加引号,不要改成代码块包裹
  • 它们是表格内容的一部分,原样保留即可

四、文件输出格式

每个 PDF 页对应一个独立 Markdown 文件。

文件头:

来源:{文档名} Rev {版本}Page {页码}

注:文档名取 PDF 元数据中的实际文档标题,不要写简称或代号。

文件尾:

> 原始图片:imgs/page_{页码}_*.png(无图则注明无图)

封面页(p1)处理规则:

  • 封面页不生成目录条目,也不生成正文 MD 文件
  • 封面页单独提取为一张截图:imgs/page_1_cover.png

五、严格禁止

  • 改写、概括、翻译原文内容
  • 合并或拆分句子
  • 省略表格中的任何列或行
  • 在正文中用文字描述替代图形占位符
  • 在目录文件中混入正文内容
  • 为封面页(p1)生成目录条目或正文 MD 文件
  • 输出任何处理过程说明,只输出 Markdown 原文
  • 路径中使用反斜杠 \ 或绝对路径

请严格按照上述规则处理每一页。