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

67 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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