ken_nogi/PythonProj/ScanOCR
Kenichiro NOGI 099a40d476 feat: 配布パッケージ自動生成スクリプトを追加
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-02 10:18:35 +09:00
..
build feat: 配布パッケージ自動生成スクリプトを追加 2026-08-02 10:18:35 +09:00
docs/superpowers chore: スクリプト配置をスクリプト/フォルダへ整理しテスト基盤を追加 2026-08-02 10:07:24 +09:00
スクリプト feat: 固定フォルダ構成・ロック・ログ統合のmain()に置き換え 2026-08-02 10:14:37 +09:00
.gitignore chore: スクリプト配置をスクリプト/フォルダへ整理しテスト基盤を追加 2026-08-02 10:07:24 +09:00
config.txt docs: config.txt雛形とREADMEを新運用フローに合わせて更新 2026-08-02 10:17:52 +09:00
OCR仕分け実行.bat feat: 起動バッチOCR仕分け実行.batを追加 2026-08-02 10:16:34 +09:00
README.md docs: config.txt雛形とREADMEを新運用フローに合わせて更新 2026-08-02 10:17:52 +09:00

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 は必須ファイルです。存在しない場合は起動時にエラーになります