pdf2epub-paddle — スキャンPDFをEPUBに変換するPaddleOCRツール
概要
このプロジェクトは、スキャンPDF(画像化されたページ)を高品質なEPUBに変換することを目的としたPythonツールです。コアにはBaiduのPaddleOCR Layout Analysis APIを使い、ページ内のテキストブロックや画像、表、見出しを自動で検出します。検出した構造に基づいてテキストを整理し、見出し語句(例:“Chapter 1” や “第1章”)を基準に章分けを行い、元の画像中の図版はEPUB内に埋め込みます。READMEは英中二言語で用意され、サンプルや設定の説明が含まれています。
リポジトリの統計情報
- スター数: 34
- フォーク数: 3
- ウォッチャー数: 34
- コミット数: 4
- ファイル数: 8
- メインの言語: Python
主な特徴
- PaddleOCRのLayout Analysisを利用した高精度なレイアウト解析
- 見出しに基づく自動章分割(英語・多言語の見出しパターンに対応)
- 画像の抽出・埋め込みにより原版の図版を保持
- 正規表現等による後処理でOCR誤認識を補正し、読みやすいテキストに整形
技術的なポイント
本ツールの技術的中核は「レイアウト解析+後処理ワークフロー」です。まずPDFページを画像化(外部ツールあるいはライブラリで行う想定)し、画像をPaddleOCRのLayout Analysis APIに送信してページ内の領域(段落、見出し、画像、表など)を識別します。APIは各ブロックのバウンディングボックスと種類情報を返すため、ツール側ではそれらを座標ベースでソートしてページ単位・連続ページ単位での段落再構築を行います。
次にOCRテキストの取得と正規化です。OCR結果には改行や空白、認識ミスが入るため、正規表現ベースの後処理(repo内のdebug_regex.pyがその役割を示唆)で見出しパターンを抽出し、章境界を決定します。章分割は「見出しテキストの語彙パターン」「フォント/位置情報の傾向(見出しは中央寄せや大きめの縦幅)」などを組み合わせて行うことが多く、本リポジトリも複数ルールの組み合わせで精度向上を図っています。
画像は元ページから切り出してEPUB内に保存・参照することで、図版や表の体裁を維持します。EPUB化の手順は、解析後のHTML(各章をHTMLセクション化)を生成し、画像をリンク、メタデータ(タイトル・著者・言語など)を埋め込み、最終的にOPF/NCX構造を整えてEPUBパッケージとしてまとめる流れが基本です。実装上はHTTP通信(API呼び出し)、画像処理(切り出し/リサイズ)、テキスト処理(正規表現・Unicode正規化)、およびEPUB生成処理が主要なモジュールになります。
注意点として、PaddleOCRの外部API利用に伴うレイテンシとプライバシー(クラウド送信)の考慮、スキャン品質に依存するOCR精度、表組の複雑さに対する扱いの難しさがあります。これらは設定や後処理ルールの調整、あるいはローカルPaddle推論環境の導入で改善可能です。リポジトリには英中のREADMEとlicenseがあり、実際の運用ではAPIキー管理や大容量PDFの分割処理、エラーハンドリングの拡充が求められます。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- LICENSE: file
- README.md: file
- README_zh.md: file
- debug_regex.py: file
…他 3 ファイル
(注)ファイル数は合計8で、主要処理やユーティリティ、サンプルのスクリプトが含まれる想定です。詳細はリポジトリを直接参照してください。
まとめ
スキャンPDFをEPUB化するためのシンプルで実用的なツールセット。APIベースの高精度レイアウト解析を活かしたワークフローが魅力です。
リポジトリ情報:
- 名前: pdf2epub-paddle
- 説明: 説明なし
- スター数: 34
- 言語: Python
- URL: https://github.com/jarodise/pdf2epub-paddle
- オーナー: jarodise
- アバター: https://avatars.githubusercontent.com/u/15899808?v=4
READMEの抜粋:
Scanned PDF to Epub Converter
This tool converts scanned PDF books into clean, readable EPUB ebooks using the Baidu PaddleOCR Layout Analysis API.
Features
- High-Quality Layout Analysis: Uses PaddleOCR to intelligently detect paragraphs, headers, images, and tables.
- Smart Chapter Splitting: Automatically splits books into chapters based on headers (e.g., “Chapter 1”, “Part I”).
- Image Embedding: Preserves images from the original…