# 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-Zip(`7z`コマンド)が PATHに通っている必要があります。実行には数分〜数十分かかります。 ```bash python build/build_package.py ``` ## 開発者向け(テスト実行) ```bash python -m pip install pytest python -m pytest スクリプト/tests -v ``` ## 注意点 - OCRは完璧ではありません。運用初期は `アウトプット/` の結果を必ず目視確認してください - 日付の年が2桁の場合は "20XX年" と仮定して補完します。和暦は非対応です - 複数ページPDFは1ページ目のみ対象です - ファイル名衝突時は `氏名_YYYYMMDD(2).pdf` のように連番が付与されます - `config.txt` は必須ファイルです。存在しない場合は起動時にエラーになります