Files
team/.claude/commands/isos-pdf2md.md
T
2026-04-19 21:47:08 +08:00

2.3 KiB
Raw Blame History

name, description
name description
isos-pdf2md 将 PDF 文件转换为结构化 Markdown。使用 pdftotext 提取文本并后处理为标题、列表、表格、代码块等结构。触发:用户提到"PDF 转 Markdown"、"/isos-pdf2md"、或将 PDF 内容提取为可编辑格式。

isos-pdf2md: PDF 转 Markdown 工具

将 PDF 文件转换为结构化 Markdown,用于项目文档处理。

触发条件

  • 用户执行 /isos-pdf2md
  • 用户提到"PDF 转 Markdown"、"提取 PDF 内容"、"PDF 变成 MD"
  • 用户要求将 PDF 文件转为可编辑格式

使用方法

基本用法

# 由 Claude 调用脚本
/workspace/scripts/pdf2md.sh <input.pdf>

参数

参数 说明
-o FILE 输出文件路径(默认同名 .md- 表示 stdout
-f N 起始页码
-l N 结束页码
--raw 跳过后处理,输出原始文本
--no-toc 不生成目录
-h 显示帮助

示例

# 基本转换
/workspace/scripts/pdf2md.sh docs/ref.pdf

# 指定输出路径
/workspace/scripts/pdf2md.sh docs/ref.pdf -o docs/ref.md

# 只转换前 10 页
/workspace/scripts/pdf2md.sh docs/ref.pdf -f 1 -l 10

# 输出到 stdout(适合管道)
/workspace/scripts/pdf2md.sh docs/ref.pdf -o -

工作流程

  1. 验证输入:检查 PDF 文件存在、pdftotext 已安装
  2. 提取文本pdftotext -layout -enc UTF-8 -nopgbrk 提取带布局文本
  3. 后处理:Python 脚本识别结构并转为 Markdown:
    • 全大写短行 → ## 标题
    • 短行 + 前空行 → ### 标题
    • - / * / * 开头 → 无序列表
    • 1. 开头 → 有序列表
    • 连续缩进 >= 4 空格 → 代码块
    • | 的行 → 表格
    • --- 分隔线保留
  4. 生成目录:从 ## 标题自动生成
  5. 输出:写入 .md 文件或 stdout

依赖

  • poppler-utils(提供 pdftotext 命令)

已知限制

  • 不支持扫描件/图片型 PDF(需 OCR)
  • 复杂表格识别有限
  • 多栏布局可能产生交错文本
  • 不提取 PDF 中的图片

注意事项

  • 转换完成后应读取输出文件,检查质量
  • 如果输出不理想,可使用 --raw 获取原始文本后手动修正
  • 对包含中文的 PDF,确保使用 -enc UTF-8(脚本已默认)