PySide6 + PyMuPDF ベースの統合PDF編集GUIアプリケーション。
| カテゴリ | 機能 |
|---|---|
| プレビュー | ページ表示、ズーム、見開き表示、サムネイル一覧 |
| 結合・分割 | PDF結合、ページ範囲分割、ページ抽出、1ページ分割 |
| ページ編集 | 削除、回転(90°/180°/270°)、並び替え、空白挿入 |
| 署名 | 手書き署名、画像署名、テンプレート保存/再利用 |
| スタンプ | 定型(承認済/却下等)、日付、カスタム、画像スタンプ |
| 注釈 | コメント、ハイライト、下線、取消線、矩形、円、矢印、フリーハンド |
| テキスト/画像 | テキスト追加、画像挿入、透かし(テキスト/画像) |
| セキュリティ | パスワード設定/解除、権限制御(印刷/コピー/編集/注釈) |
| 変換 | PDF→画像(PNG/JPEG)、画像→PDF、テキスト抽出 |
| バッチ処理 | 一括結合、透かし適用、画像変換、パスワード設定 |
| UI | ダークモード、Undo/Redo、D&D読み込み、最近使ったファイル |
- Python 3.10+
- Windows 10/11
pip install -r requirements.txtpython main.pypip install pyinstaller
pyinstaller pdfeditor.specdist/PDFEditor.exe が生成されます。
python_pdfeditor/
├── main.py # エントリーポイント
├── requirements.txt # 依存パッケージ
├── pdfeditor.spec # PyInstaller設定
├── README.md
├── request.md # 要件定義書
├── src/
│ ├── app.py # アプリケーション起動
│ ├── ui/ # UI コンポーネント
│ │ ├── main_window.py # メインウィンドウ
│ │ ├── preview_widget.py # PDFプレビュー
│ │ ├── thumbnail_panel.py # サムネイル一覧
│ │ ├── property_panel.py # プロパティパネル
│ │ ├── toolbar.py # ナビゲーションツールバー
│ │ ├── annotation_toolbar.py # 注釈ツールバー
│ │ ├── merge_dialog.py # PDF結合ダイアログ
│ │ ├── split_dialog.py # PDF分割ダイアログ
│ │ ├── signature_dialog.py# 署名ダイアログ
│ │ ├── stamp_dialog.py # スタンプダイアログ
│ │ ├── security_dialog.py # セキュリティ設定
│ │ ├── converter_dialog.py# 変換ダイアログ
│ │ ├── watermark_dialog.py# 透かしダイアログ
│ │ └── batch_dialog.py # バッチ処理ダイアログ
│ ├── core/ # コアロジック
│ │ ├── pdf_manager.py # PDF管理
│ │ ├── merger.py # 結合
│ │ ├── splitter.py # 分割
│ │ ├── annotator.py # 注釈
│ │ ├── stamp.py # スタンプ
│ │ ├── signature.py # 署名
│ │ ├── security.py # セキュリティ
│ │ └── converter.py # 変換
│ ├── models/ # データモデル
│ │ ├── document.py # PDFドキュメント
│ │ ├── annotation.py # 注釈データ
│ │ └── commands.py # Undo/Redoコマンド
│ ├── utils/ # ユーティリティ
│ │ ├── config.py # 設定管理
│ │ ├── file_helper.py # ファイル操作
│ │ ├── theme.py # テーマ(ダークモード)
│ │ └── i18n.py # 多言語対応
│ └── resources/
│ ├── icons/
│ ├── stamps/
│ └── i18n/ # 翻訳ファイル (ja.json, en.json)
└── tests/
| 項目 | 技術 |
|---|---|
| GUI | PySide6 (Qt6) |
| PDF操作 | PyMuPDF (fitz) |
| PDF生成 | reportlab |
| 画像処理 | Pillow |
| パッケージング | PyInstaller |