扫描PDF转ebook:把扫描版 PDF 做成 Markdown 或 EPUB

前言

手里有一摞扫描版 PDF——论文、旧书、会议资料——想放进阅读器或进笔记库,常见做法是手工 OCR 或在线转换。前者费时,后者对页数多、版式复杂的书往往不够用。若在 Cursor 等带 Agent Skills 的环境里工作,可以把「检测 PDF、选后端、批量导出」交给 Skill 里的脚本,在本地跑完转换。

下面介绍 SkillHub 上的社区 Skill「扫描PDF转ebook」(坐标 @user_c11cceac/scannedpdf2ebook),它把扫描 PDF 转成 Markdown 或 EPUB,依赖本地 OCR,不需要配置 API Key。

这是什么

一句话:将扫描版书籍 PDF 转为 Markdown 或 EPUB,支持多种本地 OCR 后端,用 UV 管理 Python 环境。

  • 维护方:社区发布者 user_c11cceac,来源为 community。
  • 分类:SkillHub 归类为 office-efficiency。
  • 版本:1.2.0(以 SkillHub 页面为准)。
  • SkillHub 标签:requires_api_key=false,即 Skill 本身不要求额外 API Key;实际转换在本地执行,需自行安装 UV、Poppler 和 OCR 后端。

官方页面:SkillHub - 扫描PDF转ebook。

核心功能

以下能力来自该 Skill 包内的 SKILL.md(名称 scanned-pdf-to-ebook):

能力 说明
PDF → Markdown 保留标题层级,图片落到 images/ 等目录
PDF → EPUB 生成目录;表格、公式按后端能力渲染(EPUB 仅 pdf-craft 后端支持)
多 OCR 后端 pdf-craft(DeepSeek OCR 2)、Marker(Surya)、MinerU(上海 AI Lab)
文本层检测 有可用文本层时可直接提取,减少不必要的 OCR
GPU / CPU 有 GPU 可用更大模型;无 GPU 可降级
批量处理 目录级转换,默认跳过已生成文件,便于断点续跑

触发场景上,Skill 描述里列出了常见说法,例如「PDF 转 Markdown」「扫描书转电子书」「OCR 识别 PDF」等,便于 Agent 在对话中选用。

安装与启用

1. 安装 SkillHub CLI 并装入当前 Agent

按 SkillHub 安装说明,先确认 CLI:

command -v skillhub && skillhub --version

未安装时可执行官方安装脚本(完整安装或仅 CLI,见该文档)。安装 Skill 时必须用 --dir 指向当前 Agent 的 skills 目录,否则默认落在 ./skills/ 可能不会被识别。

在 Cursor 中,skills 目录一般为:

~/.cursor/skills/

安装本 Skill 的推荐命令(与 SkillHub 搜索结果一致):

skillhub install scannedpdf2ebook --namespace user_c11cceac --dir ~/.cursor/skills/

SkillHub 页面亦提示:参照上述安装文档,安装 @user_c11cceac/scannedpdf2ebook。Claude Code、Codex 等客户端路径不同(例如 ~/.claude/skills/、~/.codex/skills/),只需把 --dir 换成对应目录,安装命令形式相同。

安装完成后,进入 Skill 实际目录(形如 .../@user_c11cceac/scannedpdf2ebook),再配置运行环境。

2. 本地运行依赖(Skill 内脚本)

转换逻辑在 Skill 的 scripts/ 下,需在 Skill 目录用 UV 同步依赖并安装至少一个 OCR 后端。概要步骤:

  1. 安装 UV(uv --version 验证)。
  2. 安装 Poppler(Linux 示例:sudo apt install -y poppler-utils,以 pdftoppm -v 验证)。
  3. 在 Skill 目录执行 uv sync,再按平台安装 PyTorch 与所选后端(如 uv pip install pdf-craft)。
  4. 环境检查:
cd <SKILL_DIR>
uv run python scripts/check_env.py

输出中出现「环境就绪」且至少一个 OCR 后端为 OK 后,即可调用 CLI。

各平台与后端差异(MinerU 在 macOS Apple Silicon 需 mineru[core] 等)见 Skill 内安装指南,本文不展开。

典型用法

命令均在 Skill 目录下通过 uv run python 执行。

可选:先检测 PDF 类型

uv run python scripts/pdf_craft_cli.py detect "/path/to/mybook.pdf"

单文件转 Markdown

uv run python scripts/pdf_craft_cli.py markdown "input.pdf" "output.md"

单文件转 EPUB(需 pdf-craft 后端)

uv run python scripts/pdf_craft_cli.py epub "input.pdf" "output.epub" \
  --title "书名" --author "作者"

指定 OCR 后端

uv run python scripts/pdf_craft_cli.py -b marker markdown "input.pdf" "output.md"
uv run python scripts/pdf_craft_cli.py -b auto markdown "input.pdf" "output.md"

批量转换

uv run python scripts/batch_convert.py "/path/to/pdfs/" "/path/to/out/" -f markdown --recursive

在 Agent 对话中,安装并启用 Skill 后,可用自然语言描述任务(例如指定路径与输出格式),由 Agent 按 SKILL.md 调用上述脚本;具体路径以你本机为准。

适用场景与注意

适合谁

  • 需要把扫描书、扫描论文本地化归档为 Markdown 或 EPUB 的开发者或资料管理员。
  • 希望 OCR 在本地完成、不依赖云端 API 的场景(Skill 标注无需 API Key,但需下载模型,体积可达数 GB 量级)。

限制与注意

  • 首次使用要预留磁盘与时间:PyTorch 与 OCR 模型较大,pdf-craft / Marker / MinerU 安装体积在文档中约为 2–5 GB 量级。
  • EPUB 仅 pdf-craft 后端支持;用 -b marker 或 -b minera 转 EPUB 会不符合后端能力。
  • CPU 模式可用但较慢;无 GPU 时文档建议较小 OCR 模型或 Marker 等轻量后端。
  • MinerU 在 Linux ARM、部分 macOS 组合上文档标注为未测试或需特殊包名,部署前先看 Skill 内平台表。
  • SkillHub 统计(以抓取资料为准):评分 100000,下载 1363,安装 18;社区 Skill,使用前自行评估环境与合规需求。

结尾

「扫描PDF转ebook」把扫描 PDF 转 Markdown / EPUB 的流程封装成可复用的 Agent Skill:SkillHub 一键安装到 Cursor 等客户端,本地 UV + Poppler + 可选 OCR 后端完成转换与批量任务。需要查阅简介与版本时,可打开官方 Skill 页:

https://www.skillhub.cn/skills/user_c11cceac/scannedpdf2ebook

API 入口(元数据):https://api.skillhub.cn/user_c11cceac/scannedpdf2ebook

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜