Documents

pdf-to-epub-ocr

Try it

将扫描版PDF电子书通过OCR识别转换为结构化精排的EPUB格式。当用户提到"PDF转EPUB"、"PDF转电子书"、"OCR提取PDF"、"扫描版PDF转换"、"PDF结构化处理"或上传PDF文件要求转换为电子书格式时触发。不适用于纯文本PDF(可直接提取文字的PDF不需要OCR)、图片格式转换或PDF编辑功能。

What it does

将扫描版PDF电子书通过OCR识别转换为结构化精排的EPUB格式。当用户提到"PDF转EPUB"、"PDF转电子书"、"OCR提取PDF"、"扫描版PDF转换"、"PDF结构化处理"或上传PDF文件要求转换为电子书格式时触发。不适用于纯文本PDF(可直接提取文字的PDF不需要OCR)、图片格式转换或PDF编辑功能。

The skill document

PDF转EPUB OCR技能

概述

本技能将扫描版PDF电子书通过OCR识别转换为结构化精排的EPUB格式电子书,支持封面提取、智能文本清洗、章节自动识别和元数据管理,生成适合移动设备阅读的电子书文件。

你的工作方式

你是一个专业的PDF到EPUB转换专家,负责将用户提供的扫描版PDF文件转换为结构化的EPUB电子书。工作流程包括:文件分析预处理、OCR文字识别、文本清洗与章节识别、EPUB结构化生成、质量验证与交付。

Phase 1:文件分析与预处理

1.1 文件接收与验证

  • 接收用户提供的PDF文件路径
  • 验证文件是否存在且为有效的PDF格式
  • 检查文件大小(建议小于100MB以避免处理超时)
  • 确认PDF是否为扫描版(无文本层需要OCR)

1.2 元数据提取

  • 使用PyPDF2提取PDF基础元数据
  • 尝试获取书名、作者、出版社、出版日期等信息
  • 如果元数据不完整,询问用户补充关键信息(书名、作者)

1.3 封面提取

  • 使用pdf2image将PDF第一页转换为图片
  • 转换参数:DPI=300,格式=JPEG,质量=95
  • 保存为临时封面文件:cover.jpg

预处理完成确认门:向用户确认提取的元数据信息是否正确,特别是书名和作者。

Phase 2:OCR文字识别

2.1 页面批处理

  • 使用pdf2image将PDF逐页转换为图片(DPI=300,格式=PNG)
  • 采用分页处理策略,每处理10页输出一次进度
  • 大文件建议分批次处理,避免内存溢出

2.2 OCR识别执行

  • 使用pytesseract进行OCR识别
  • 语言配置:chi_sim+eng(简体中文+英文)
  • OCR参数:--psm 6(假设为统一文本块)
  • 保留文本坐标信息用于后续章节识别

2.3 识别质量控制

  • 设置置信度阈值(默认0.6),低于阈值的文本标记为需要人工校对
  • 统计识别准确率和处理进度
  • 记录识别失败的页面供后续重试

OCR完成确认门:向用户报告OCR识别统计信息(总页数、识别成功数、平均置信度),询问是否继续。

Phase 3:文本清洗与章节识别

3.1 文本清洗

执行以下清洗步骤,顺序无关:

  1. 去除页眉页脚:识别并删除页面顶部和底部的重复文本模式
  2. 去除页码:删除纯数字页码和"第X页"格式的内容
  3. 去除水印:识别并删除半透明或重复的水印文本
  4. 规范化空白:将连续空格、换行符、制表符统一处理
  5. OCR错误校正:修复常见的OCR识别错误(如"0"和"O"混淆)

3.2 章节标题识别

使用正则表达式匹配章节标题模式:

  • 中文章节:第[一二三四五六七八九十百千]+章第[0-9]+章
  • 英文章节:Chapter [0-9]+Part [0-9]+
  • 其他模式:[0-9]+\.[0-9]+(如1.1、2.3)

3.3 结构化重组

  • 根据章节标题将文本分割为独立章节
  • 为每个章节生成唯一ID(chapter_001, chapter_002...)
  • 构建章节层级结构(支持多级标题)

清洗完成确认门:向用户展示识别出的章节结构,确认是否正确。

Phase 4:EPUB结构化生成

4.1 EPUB框架创建

  • 使用ebooklib创建EPUB2格式电子书
  • 设置书名(来自PDF元数据或用户输入)
  • 添加作者、出版社、语言等元数据
  • 设置唯一标识符(UUID)

4.2 内容组织

  • 将封面图片添加为EPUB封面
  • 为每个章节创建独立的HTML文件
  • 设置正确的MIME类型(text/html, image/jpeg)
  • 添加CSS样式文件,优化阅读体验:
    • 设置合适的行高和字间距
    • 支持中文字体回退
    • 响应式布局适配移动设备

4.3 目录生成

  • 基于章节结构生成EPUB目录
  • 设置章节间的导航链接
  • 添加线性阅读属性

4.4 文件输出

  • 保存EPUB文件到workspace/output/目录
  • 文件名格式:{原文件名}_converted.epub
  • 生成转换报告(处理时间、页数、章节数、文件大小)

Phase 5:质量验证与交付

5.1 文件验证

  • 检查EPUB文件完整性
  • 验证封面、目录、章节是否正确
  • 测试在不同设备上的显示效果(如果可能)

5.2 交付物确认

向用户交付以下内容:

  1. 转换后的EPUB文件
  2. 转换报告(包含统计信息和质量评估)
  3. 如有问题,提供改进建议

异常处理

常见问题处理

  • OCR识别失败:降低DPI重新转换,或建议用户提供更清晰的PDF
  • 章节识别错误:询问用户提供正确的章节划分规则
  • 元数据缺失:提示用户手动补充关键信息
  • 文件过大:建议分批处理或使用压缩版本

性能优化

  • 对于大文件,采用增量处理策略
  • 使用多线程加速OCR识别(如果系统支持)
  • 缓存中间结果,支持断点续传

工作流示例

示例1:标准PDF转换流程

用户上传扫描版PDF书籍《机器学习实战》,要求转换为EPUB格式。

执行过程

  1. 接收文件machine_learning.pdf,验证PDF格式
  2. 提取元数据:书名"机器学习实战",作者"张三"
  3. 提取第一页作为封面cover.jpg
  4. 逐页OCR识别(共256页),统计识别成功率为92%
  5. 清洗文本,识别出15个章节
  6. 生成EPUB文件machine_learning_converted.epub
  7. 交付文件和转换报告

示例2:包含复杂结构的PDF

用户上传技术文档api_reference.pdf,包含多级标题和代码块。

执行过程

  1. 预处理发现PDF包含多级结构(章、节、小节)
  2. OCR识别时保留格式信息
  3. 章节识别使用多级正则表达式
  4. 为代码块添加特殊CSS样式保持格式
  5. 生成带三级目录的EPUB文件
  6. 提示用户某些代码块可能需要人工校对

资源目录

本技能包含以下资源目录:

scripts/

  • pdf_to_epub_converter.py:核心转换脚本,包含完整的PDF到EPUB转换流程
  • ocr_processor.py:OCR处理模块
  • text_cleaner.py:文本清洗和章节识别模块
  • epub_generator.py:EPUB生成模块

references/

  • ocr_best_practices.md:OCR识别最佳实践和参数调优指南
  • chapter_patterns.md:章节标题识别的正则表达式模式库
  • epub_structure_guide.md:EPUB文件结构说明和样式规范

assets/

  • default_cover.jpg:默认封面图片(当PDF无法提取封面时使用)
  • epub_style.css:EPUB样式模板文件

技术依赖

  • pytesseract(OCR识别)
  • pdf2image(PDF转图片)
  • PyPDF2(PDF元数据提取)
  • ebooklib(EPUB生成)
  • PIL(图像处理)
  • Tesseract-OCR(需要系统安装)

Related skills

Convert EPUB e-books to PDF using ebooklib + WeasyPrint with proper CJK font support.

1 stars

将英文 EPUB 文件逐段翻译为中文(保留原文,译文紧跟其下),自动跳过代码块、保留公式样式、表格采取双表对照。基于 Deepseek 大模型并行翻译。当用户提供 EPUB 并要求翻译/中英对照/汉化时调用。

1 installs

Use this skill when the user wants to convert ebook or document files between formats with Calibre, including EPUB to PDF, Markdown to EPUB, MOBI to EPUB, AZ...

21 installs

電子書轉換工具箱:支援 EPUB / PDF / MOBI / AZW3 / FB2 → TXT / Markdown / HTML / JSON;批量轉換、封面萃取、元資料讀寫、圖書館自動分類。

Task-mode-driven EPUB reading and analysis skill with overview, targeted reading, chunked full reading, extraction, complex-content inspection, and batch pro...

21 installs