Community图像github.com

扫描书刊转数字PDF

将扫描版书刊PDF数字化为可读、可搜索、文本可选的PDF,保留原始图像和字体感知排版。适用于OCR、重排版或从扫描件恢复印刷书籍,尤其在Mac上通过Apple Vision与PaddleOCR PP-StructureV3交叉验证。引导非技术用户完成简单字体、字号和段落选择,同时自行处理OCR、质量检查和复杂页面布局。

扫描书刊转数字PDF 是什么?

该技能将扫描的书籍PDF转换为可搜索、可选择文本的数字PDF,保留原始版式、图像和字体样式。它采用Mac优先的双引擎OCR流水线(Apple Vision + PaddleOCR PP-StructureV3),在相同缓存的页面图像上运行,生成细粒度比较报告以标记差异。AI代理负责编辑器重建,处理段落缩进、字体选择、标题、图片和表格,同时引导非技术用户通过友好提问进行简单选择。技能有严格的质量检查:审计PDF确保源词覆盖率、字体嵌入和视觉一致性,并且仅在用户批准后才标记最终版本。它遵守源保护规则(SHA-256、不覆盖原始文件)和操作边界(需要正确的Mac环境,不虚构OCR输出)。

兼容平台~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/MuhtajinMukhtar/scan-book-to-digital-pdf/tree/HEAD

Installed? Explore more 图像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

扫描书刊转数字PDF 是做什么的?

对话应当简单

用户只需说:“请将这本书PDF转换成便于阅读的数字书籍,参考 https://github.com/MuhtajinMukhtar/scan-book-to-digital-pdf”。他们可以附加PDF文件。不需要他们知道OCR、PP-StructureV3、SHA-256或命令行等术语。

  • 如果没有PDF附件,请索要PDF。
  • 默认采用忠实于原版式的布局、源字体和段落开头。必要时,一次只问一个友好问题,用日常用语表达:“想要像普通书一样的字体还是现代风格的?”、“文字大小像原来一样还是更大?”、“段落开头缩进还是左对齐?”。提供“保持原样”选项。默认参数足够时不要问所有问题。
  • 用通俗语言报告进度:已检查页数、不确定页、审核PDF。技术日志保留在工作文件中,不在用户聊天记录中。
  • 不要强迫用户手动选择OCR引擎。在兼容的Mac上,同时使用以下两个引擎。

源文件保护和偏好设置

记录页数、原始SHA-256、文件元数据和输出目标。绝不覆盖原始或已批准的先前版本。默认保持精确的源到页映射,除非用户明确要求重新分页。尊重明确偏好:正文衬线体(如果已安装且获得许可则用Georgia,否则用开源衬线体)或无衬线体;源估算或指定的字号;首行缩进(按源/是/否)。保留源文档的标题、斜体、照片、图表、表格、徽标、引文、表单、页脚和阅读顺序。绝不重新分发受版权保护的扫描件或字体文件。

Mac优先双OCR流水线(完整运行必须)

  1. 使用 references/mac-setup.md 设置一个隔离的Mac Python环境。在处理之前验证真实的Apple Vision和PaddleOCR PP-StructureV3安装。不要使用生产系统或全局包更改。
  2. 运行 python scripts/mac_hybrid_ocr.py BOOK.pdf --work-dir ./work。这会调用 scripts/ocr_book.py,先使用Apple Vision,然后在相同缓存的页面图像上运行PP-StructureV3,保存原始Paddle JSON和Markdown,并在 work/fusion/ 下生成每页对比报告。
  3. 从Paddle JSON(而非其Markdown渲染)读取原始的overall_ocr_res.rec_texts。成功的原型在一个五页试点中恢复了Paddle Markdown遗漏的七行文本;永远不要假设Markdown是完整的。检查paddle_raw_not_in_markdown、paddle_not_in_apple、apple_not_in_paddle以及拼写/措辞变体警告。所有这些都是审核候选,而非自动批准的修正。
  4. 在应用修正之前,根据原始页面图像确认缺失文本和有争议的名称。逐行比较两个引擎;没有哪个引擎是绝对权威。将不确定性记录在特定页面的问题日志中。不要仅根据上下文虚构文本。
  5. 对每一页进行分类,并根据验证的阅读顺序、所选字号、字体、段落缩进和两端对齐正文,编排数字排版文本。使用原始裁剪的照片/插图。参考 references/page-archetypes.md。对于无法安全重建的页面,保留源图像并添加可选的OCR文本层,将该页明确标记为可搜索扫描回退。
  6. 为每个原始页面编写一个清单条目:源/输出页面、类型、OCR引擎、接受的修正、图像校验、数字或可搜索扫描状态、异常和视觉审核状态。
  7. 使用 scripts/pdf_audit.py 验证源词覆盖率、页面映射、嵌入字体、无空白/裁剪页面和图像,以及源/输出视觉比较。阅读 references/qa-and-handoff.md。不要掩盖失败以报告成功。
  8. 交付一份审核PDF和简洁的待处理页面摘要。仅在用户接受编辑结果后标记最终版本。仅对副本运行 scripts/lossless_optimize.py,并验证渲染/文本一致性。

操作边界

  • 这不是一键通用重排版工具:AI代理必须执行复杂页面的编辑器重建。mac_hybrid_ocr.py 准备源比较,它本身不会生成最终书籍。
  • 如果Paddle在Mac上无法运行,不要默默地仅使用Apple Vision继续并假装输出通过了双OCR;报告安装问题并为用户提供安全下一步。
  • 如果当前ChatGPT Work或Codex环境无法执行Mac软件,简要说明情况。获取允许的Mac执行环境,而不是虚构OCR输出。
  • 保留缓存/源标识。绝不自动覆盖来自其他来源的现有OCR结果。不要在仓库中发布私人文件。
  • 使用--compare-only 重新评估现有缓存,无需重新运行OCR。

相关技能