Skip to content

ishii2025buziness/scanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scanner - ScanSnap ドキュメント管理システム

ScanSnap iX500等でスキャンした書類を自動処理し、検索可能なナレッジベースとして管理するCLIツール。

機能

  • 直接スキャン: ScanSnapをLinuxから直接制御(SANE/scanimage経由)
  • 自動スキャン: 紙をセットすると自動でスキャン開始
  • OCR: Tesseractによる日本語/英語テキスト抽出
  • AI分析: Claude APIによる自動分類・タグ付け・要約生成・日付抽出
  • 全文検索: SQLite FTS5による高速検索
  • Markdown出力: 検索可能なMarkdownファイルを自動生成
  • Obsidian連携: Obsidian vaultへのエクスポート

クイックスタート(はじめての方へ)

1. 準備(最初の1回だけ)

必要なソフトをインストール

sudo apt install tesseract-ocr tesseract-ocr-jpn poppler-utils sane-utils img2pdf

このツールをインストール

git clone https://github.com/ishii2025buziness/scanner.git
cd scanner
uv sync

AI機能を有効にする

echo 'export ANTHROPIC_API_KEY="ここにAPIキーを貼る"' >> ~/.bashrc
source ~/.bashrc

2. スキャナーを接続

USBケーブルでScanSnap iX500をパソコンにつなぐ。

3. 使ってみる

# 自動スキャンモードを起動
uv run scanner autoscan

「Waiting for paper...」と表示されたら、紙をスキャナーにセットするだけ!


スキャンモード

3つのモード

モード 用途 OCR AI分析
文書(デフォルト) 領収書、契約書など ○ 1枚ごと自動分類
写真 写真、イラスト × ×
書籍を丸ごと ○ 全体で1回

文書モード(デフォルト)

普通の書類をスキャン。AIが自動で種類を判定してタグ付け。

# 自動スキャン(紙を入れるたびにスキャン)
uv run scanner autoscan

# 1枚だけスキャン
uv run scanner scan

写真モード

写真やイラストをスキャン。OCRとAI分析をスキップして高速。

# 写真を連続スキャン
uv run scanner autoscan --type photo

# 1枚だけ
uv run scanner scan --type photo

本モード

書籍を丸ごとスキャン。全ページをまとめて1つのドキュメントに。

# 本を連続スキャン(Ctrl+Cで終了時にまとめて処理)
uv run scanner autoscan --type book --title "プログラミング入門"
  1. コマンド実行
  2. ページをどんどんスキャン(「Page 1 added」「Page 2 added」...)
  3. 全部終わったら Ctrl + C
  4. 全ページがまとめて1つのPDFに → AI要約

スキャンのオプション

# 高解像度でスキャン(細かい文字がある書類向け)
uv run scanner scan --resolution 600

# 白黒でスキャン(ファイルサイズ小さめ)
uv run scanner scan --gray

# 片面だけスキャン
uv run scanner scan --simplex

スキャンした書類を探す

キーワードで検索

uv run scanner search "電気代"
uv run scanner search "確定申告"

最近スキャンしたものを見る

uv run scanner list
uv run scanner list --recent 20   # 20件表示

タグで絞り込む

uv run scanner list --tag "レシート"
uv run scanner list --tag "経費"

種類で絞り込む

uv run scanner list --type receipt    # レシートだけ
uv run scanner list --type contract   # 契約書だけ

詳細を見る

uv run scanner show a1b2c3d4    # IDの最初の数文字でOK

スキャンした書類の保存場所

フォルダ 中身
~/Documents/scanner/inbox/ スキャン直後のファイル(処理待ち)
~/Documents/scanner/archive/ 原本PDF(スキャンしたそのまま)
~/Documents/scanner/docs/ 内容をまとめたMarkdownファイル

ファイルマネージャーで ホーム → Documents → scanner を開くと見れます。


よく使うコマンド早見表

やりたいこと コマンド
文書を自動スキャン uv run scanner autoscan
写真を自動スキャン uv run scanner autoscan --type photo
本を自動スキャン uv run scanner autoscan --type book --title "タイトル"
1回だけスキャン uv run scanner scan
最近のスキャン一覧 uv run scanner list
キーワード検索 uv run scanner search "○○"
設定を確認 uv run scanner config show
終了する Ctrl + C

トラブルシューティング

症状 対処法
「No scanner found」と出る USBケーブルを挿し直す。スキャナーの電源を確認。
スキャンが始まらない 紙がちゃんとセットされているか確認
文字が読み取れない 紙が逆さまかも。向きを変えてもう一度
「API key not found」と出る echo $ANTHROPIC_API_KEY で設定されているか確認

詳細設定

設定ファイル

cp config.toml.example ~/Documents/scanner/config.toml

~/Documents/scanner/config.toml を編集して設定をカスタマイズできます。

現在の設定を確認

uv run scanner config show

Obsidian連携

config.toml で以下を設定:

[export.obsidian]
enabled = true
vault_path = "/path/to/your/obsidian/vault"
folder = "Scanner"

エクスポート実行:

uv run scanner export obsidian

AIが自動判定する書類タイプ

文書モードでスキャンすると、AIが自動で以下のタイプに分類:

タイプ 説明
receipt レシート、領収書
invoice 請求書
contract 契約書
certificate 証明書、資格証
letter 手紙、通知
note メモ、ノート
form 申請書、フォーム
statement 明細書
other その他

photobook--type オプションで手動指定


高度な使い方

既存のPDFをインポート

# 1ファイル
uv run scanner import /path/to/document.pdf

# フォルダ内の全ファイル
uv run scanner import /path/to/folder/

AI分析をやり直す

uv run scanner reprocess a1b2c3d4

inboxフォルダの監視モード

(他のアプリからinboxにファイルが保存される場合)

uv run scanner watch

アーキテクチャ

BaseProcessor (ABC)
    ├── PhotoProcessor    # OCR: ×  AI: ×
    ├── DocumentProcessor # OCR: ○  AI: ○ (1枚ごと)
    └── BookProcessor     # OCR: ○  AI: ○ (全体で1回)

新しいスキャンタイプを追加する場合は BaseProcessor を継承したクラスを作成。


開発者向け

# Lint
uv run ruff check src/

# Format
uv run ruff format src/

ライセンス

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages