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

83 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: isos-pdf2md
description: 将 PDF 文件转换为结构化 Markdown。使用 pdftotext 提取文本并后处理为标题、列表、表格、代码块等结构。触发:用户提到"PDF 转 Markdown"、"/isos-pdf2md"、或将 PDF 内容提取为可编辑格式。
---
# isos-pdf2md: PDF 转 Markdown 工具
将 PDF 文件转换为结构化 Markdown,用于项目文档处理。
## 触发条件
- 用户执行 `/isos-pdf2md`
- 用户提到"PDF 转 Markdown"、"提取 PDF 内容"、"PDF 变成 MD"
- 用户要求将 PDF 文件转为可编辑格式
## 使用方法
### 基本用法
```bash
# 由 Claude 调用脚本
/workspace/scripts/pdf2md.sh <input.pdf>
```
### 参数
| 参数 | 说明 |
|------|------|
| `-o FILE` | 输出文件路径(默认同名 `.md``-` 表示 stdout |
| `-f N` | 起始页码 |
| `-l N` | 结束页码 |
| `--raw` | 跳过后处理,输出原始文本 |
| `--no-toc` | 不生成目录 |
| `-h` | 显示帮助 |
### 示例
```bash
# 基本转换
/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`(脚本已默认)