pdf2md
Gemini API を使った高精度 PDF → Markdown 変換ツール。flattendoc の変換エンジン。
概要
- 言語: Python 3.9+
- 変換エンジン: Google Gemini 2.5 Pro / 2.5 Flash
- PDF パース: PyMuPDF
- 文書タイプ自動判定: スキャン文書 / 電子文書
変換モード
スキャン文書 (ScannedPDFConverter)
- ページを画像として Gemini に送信 (OCR)
- ページグルーピング (
pages_per_part: 5) - 並列処理対応 (最大4ワーカー)
電子文書 (ElectronicPDFConverter)
- PDF を直接 Gemini にアップロード
- 目次ベースの分割 (
split_by_toc: true) - 高速モデル (Gemini 2.5 Flash)
後処理ルール
| ルール | 説明 |
|---|---|
RemoveCodeBlockRule |
不要なコードブロックマークアップ除去 |
FixKaisetsutHeadingRule |
【解説】見出し階層の修正 |
ExtractYAMLFrontMatterRule |
メタデータ (タイトル、日付、発行者) の抽出 |
NormalizeEmptyLinesRule |
過剰な空行の整理 |
使い方
# 自動判定で変換
pdf2md convert input.pdf
# 文書タイプ分析のみ
pdf2md analyze input.pdf
# 後処理のみ
pdf2md post-process input.md
# キャッシュクリア
pdf2md convert --clear-cache input.pdf
設定
config/default.yaml でモデル・タイムアウト・後処理ルール等をカスタマイズ。
gemini:
model_name: "gemini-2.5-pro"
generation_config:
temperature: 0.2
max_output_tokens: 65536
scanned:
pages_per_part: 5
timeout: 360
electronic:
model_name: "gemini-2.5-flash"
split_by_toc: true
リポジトリ
pdf2md/