ken_nogi/PythonProj/ScanOCR/README.md
Kenichiro NOGI 379d1d09e4 docs: config.txt雛形とREADMEを新運用フローに合わせて更新
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-02 10:17:52 +09:00

3.3 KiB
Raw Blame History

PDFスキャン監視・自動振り分けツール

テンプレート画像(赤枠=氏名欄、青枠=日付欄)を基準に、"スキャン"フォルダ内のPDFから 氏名・日付をOCRで抽出し、リネーム・振り分けを行うツールです。

使い方

  1. config.txt で各フォルダ名・動作パラメータを確認(通常は初期値のまま利用可)
  2. テンプレート/ フォルダにテンプレート画像を1つ入れる複数ある場合はファイル名が最も早いもの
    • 画像編集ソフト等で、氏名欄に赤い四角枠、日付欄に青い四角枠を重ねて保存PNG推奨
    • テンプレートは実際の対象PDFと同じ用紙サイズ・向きで作成すること
  3. スキャン/ フォルダに処理対象PDFを入れる
  4. OCR仕分け実行.bat をダブルクリック
  5. 処理結果は以下に振り分けられる:
    • 成功: アウトプット/氏名/氏名_YYYYMMDD.pdf にコピー、元ファイルは 成功/ へ移動
    • 失敗: 失敗/ フォルダへ元ファイルのまま移動
  6. 実行ログは ログ/YYYY-MM-DD.log に記録される
  7. 処理を途中で止めたい場合は、コンソールが表示されている間に何かキーを押す1件処理する度にチェックされる

フォルダ構成

ScanOCR/
├── OCR仕分け実行.bat       起動バッチ
├── config.txt              フォルダ名・動作パラメータ設定(必須ファイル)
├── スクリプト/
│   ├── extract_and_rename.py   メイン処理
│   ├── box_detector.py         テンプレート枠検出
│   ├── config_loader.py        config.txt読込
│   ├── file_ops.py             ファイル名衝突回避コピー・移動、安定待ち
│   ├── lock_manager.py         二重起動防止ロック
│   ├── logger.py               実行ログ出力
│   ├── python/                 Python embeddable本体配布パッケージのみ
│   └── tools/                  tesseract-ocr・poppler配布パッケージのみ
├── テンプレート/
├── スキャン/
├── アウトプット/
├── 成功/
├── 失敗/
└── ログ/

開発者向け(配布パッケージのビルド)

配布用の同梱Python・tesseract・popplerは build/build_package.py で自動生成します。 dist/ScanOCR/ 配下に配布用一式が生成されます。ネットワーク接続必須、7-Zip7zコマンド)が PATHに通っている必要があります。実行には数分〜数十分かかります。

python build/build_package.py

開発者向け(テスト実行)

python -m pip install pytest
python -m pytest スクリプト/tests -v

注意点

  • OCRは完璧ではありません。運用初期は アウトプット/ の結果を必ず目視確認してください
  • 日付の年が2桁の場合は "20XX年" と仮定して補完します。和暦は非対応です
  • 複数ページPDFは1ページ目のみ対象です
  • ファイル名衝突時は 氏名_YYYYMMDD(2).pdf のように連番が付与されます
  • config.txt は必須ファイルです。存在しない場合は起動時にエラーになります