PDFファイル内のQRコードを自動検出し、内容を表示・保存する高機能ツールです。C#とPythonの両方で実装され、GUI・コンソール両対応の使いやすいアプリケーションです。
- 🖥️ GUI版: 直感的なWindows Formsアプリケーション(推奨)
- 💻 コンソール版: コマンドライン・バッチ処理対応
- 🐍 Python版: クロスプラットフォーム対応
- 🔍 高精度検出: 複数の画像処理技術による高い検出率
- 📋 詳細出力: 位置情報付きの検出結果
# 実行ファイルをダブルクリック または
PdfQrReader.exe
# バッチファイル使用
run_gui.bat# C#版
PdfQrReader.exe --console document.pdf
# Python版
python pdf_qr_reader.py document.pdf| ファイル | 説明 |
|---|---|
PdfQrReader.exe |
GUIアプリケーション(推奨) |
run_gui.bat |
GUI起動スクリプト |
run_console.bat |
コンソール実行スクリプト |
| ファイル | 説明 |
|---|---|
pdf_qr_reader.py |
Pythonメインプログラム |
requirements.txt |
Python依存関係 |
# 1. 環境確認
check_setup.bat
# 2. 必要に応じてビルド
build.bat
# 3. 実行
run_gui.batシステム要件: Windows 10/11 + .NET 8.0 Runtime
# 1. ライブラリインストール
pip install -r requirements.txt
# 2. 実行
python pdf_qr_reader.py document.pdfシステム要件: Python 3.8+ + OpenCV + PyMuPDF
- 📁 ファイル選択: 「参照...」ボタンでPDFを選択
- ⚙️ 設定確認: 出力ファイル名・自動保存設定
▶️ 実行: 「QRコード読み取り開始」をクリック- 📋 結果確認: ダイアログで結果表示・クリップボードコピー
# C#版 - 基本実行
PdfQrReader.exe --console "document.pdf"
# C#版 - 出力ファイル指定
PdfQrReader.exe --console "document.pdf" "output.txt"
# Python版 - 基本実行
python pdf_qr_reader.py document.pdf
# Python版 - オプション付き
python pdf_qr_reader.py document.pdf -o results.txt- 📐 高解像度変換: 300DPI画像変換
- 🎨 前処理技術:
- グレースケール変換
- コントラスト調整
- 明度調整
- 二値化処理
- 🔄 重複除去: 同一QRコードの重複検出防止
- 📍 位置情報: X/Y座標、幅/高さ
- 📄 ページ情報: 検出ページ番号
- 🏷️ タイプ情報: QRコードタイプ
- 📝 内容: デコードされたテキスト
検出されたQRコードの情報は以下の形式で保存されます:
PDFファイルから検出されたQRコード情報
==================================================
処理ファイル: document.pdf
検出日時: 2025年10月23日 16:45:30
検出総数: 2 個
QRコード #1
ページ: 1
タイプ: QR_CODE
位置: X=150, Y=200, 幅=100, 高さ=100
内容:
https://example.com
------------------------------
QRコード #2
ページ: 3
タイプ: QR_CODE
位置: X=300, Y=400, 幅=120, 高さ=120
内容:
お問い合わせ: info@example.com
------------------------------
| 項目 | 仕様 |
|---|---|
| フレームワーク | .NET 8.0 (Windows) |
| GUI | Windows Forms |
| PDF処理 | PdfiumViewer |
| QR検出 | ZXing.NET |
| 総コード量 | 635行 (0.635 KLOC) |
| 項目 | 仕様 |
|---|---|
| バージョン | Python 3.8+ |
| PDF処理 | PyMuPDF (fitz) |
| QR検出 | pyzbar |
| 画像処理 | OpenCV |
| 総コード量 | 200行 (0.2 KLOC) |
| PDFサイズ | ページ数 | 処理時間 | メモリ使用量 |
|---|---|---|---|
| 1MB以下 | 1-5ページ | 2-10秒 | 50-80MB |
| 1-5MB | 5-20ページ | 10-60秒 | 80-150MB |
| 5-10MB | 20-50ページ | 1-5分 | 150-300MB |
Q: QRコードが検出されない
A: 以下を確認してください:
- QRコードが十分な大きさか
- 画質が鮮明か
- PDFがテキストベースでないか
Q: GUI版が起動しない
A: 以下を確認してください:
- .NET 8.0 Runtimeがインストール済みか
- Windows 10/11環境か
check_setup.batで環境確認
Q: Python版でエラーが発生
A: 以下を確認してください:
pip install -r requirements.txt実行済みか- Python 3.8+がインストール済みか
- 依存ライブラリが正常にインストールされているか
| ファイル | 内容 |
|---|---|
README_GUI.md |
GUI版詳細マニュアル |
README_CSharp.md |
C#版技術仕様 |
DESIGN_DOCUMENT.md |
設計書・クラス図・KLOC分析 |
CODE_ANALYSIS_REPORT.md |
コード品質レポート |
PROJECT_SUMMARY.md |
プロジェクト総括 |
テストファイル: QR_Code_A4_ReportLab.pdf
- ✅ 検出成功: 1個のQRコード
- ✅ 内容:
https://qr.quel.jp/ - ✅ 位置: X=1071, Y=1921 (337×338px)
- ✅ 処理時間: 約2-3秒
このツールは以下の用途に最適です:
- ✅ 文書管理でのQRコード情報抽出
- ✅ PDFファイルの自動処理
- ✅ バッチ処理でのQRコード読み取り
- ✅ GUI操作による直感的な処理
- 初回利用: GUI版で操作に慣れる
- 単発処理: GUI版で直感的に操作
- バッチ処理: コンソール版でスクリプト化
- 開発統合: Python版でシステム組み込み
高品質なQRコード読み取りツールをぜひご活用ください!
プロジェクトへの貢献を歓迎します!
- このリポジトリをフォーク
- フィーチャーブランチを作成 (
git checkout -b feature/AmazingFeature) - 変更をコミット (
git commit -m 'Add some AmazingFeature') - ブランチにプッシュ (
git push origin feature/AmazingFeature) - プルリクエストを作成
このプロジェクトは MIT License の下で公開されています。詳細は LICENSE ファイルを参照してください。
- 開発期間: 2025年10月
- 言語: C# (.NET 8.0) + Python 3.12
- 総行数: 約1,500行 (C# + Python)
- 対応プラットフォーム: Windows 10/11
- テスト済み: QRコード検出・GUI・コンソール各機能
