Skip to content

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/