Table of Contents
pypdfによるPDF結合・分割/GhostscriptによるPDF圧縮にちょっとしたUIを付けるツールです。特徴といえそうなのは以下です。
- 単一のmain.pyからツールの分岐を行う。
- 順番を指定してPDFを結合することができる。
- 上書き時の動作は保障できません。ご注意ください。
- 結合後の元PDFの削除およびGhostscriptによる結合結果PDFの圧縮に対応。
- PDFを1ページ毎または指定した境界で分離することができる。
- GhostscriptによるPDFの圧縮にUIを付与。
初期はPyPDF2を検討しておりましたが、PyPDF2のPypiサイトによれば「v3.0.X(2022/12/31リリース)で開発を停止してルーツであるpypdfで開発を続ける」とのことだったので、pypdfを利用しています。
-
仮想環境での動作を想定しています。
python -m venv ci_env (for linux ) source ci_env/bin/activate (for windows) .\ci_env\Scripts\activate
-
PDFの圧縮において、GhostScriptが存在する前提で組んでいるため、事前にインストールが必要です。 公式のインストールページはこちら。
-
このリポジトリをクローンする。
git clone https://github.com/Thinqat1985731/Minimum-pdf-tools.git
-
関連するpythonライブラリをインストールする。
pip install pypdf pip install send2trash pip install charset-normalizer pip install chardet
PoetryやRyeでtomlファイルを作成し、インストールしても可。
src内のmain.pyを実行する。そうすればTkinterによるダイアログがぼちぼち出てくるのでそれに従う感じ。
cd src
python main.py
2023/4/2 (v1.0.0)
- 公開
2023/4/3 (v1.0.1)
- データが無いときの処理を追加
- Python自体の終了処理を追加
- readme.md修正
2023/4/4 (v1.1.0)
- 個々の作業を関数にしてパッケージ化
- 読み込みの仕様により逆順になる場合に対しての並べ替え機能追加
- 上記に伴う確認メッセージ追加
- Python自体の終了処理をより追加 (削除時のCOM surrogate防止)
2023/10/22 (v2.0.0)
- GhostScriptにUIを付けるためのpdf-compressor追加
- gitignoreを追加
2023/10/23
- linter/formatterでコードを整理
2023/11/03
- MITライセンスの付与
- .gitignore/readme.md修正
2023/11/09 (v2.1.0)
- isortでモジュール整理
- 結合後に圧縮/結合元ファイルのゴミ箱送りのオプションを追加
2023/11/10 (v2.2.0)
- GhostScriptの圧縮の設定をいじるウィンドウを追加
2023/11/11 (v2.3.0)
- 上書きする際のSend2trash回避処理の追加
- 不要コードの削除
- 変数名・コードの統一
2023/11/18 (v3.0.0)
- 3ツールを1つのmain.pyに統一し選択式へ
2023/12/11 (v3.1.0)
- ロゴを追加
2023/12/13
- main.pyの誤植によるバグ修正
- readme.md更新
2023/12/21 (v4.0.0)
- 結合について、並べ替えの順番を任意に決定可能に
- 結合後のオプションをmerging関数に統合
- readme.md更新
2023/12/22 (v4.1.0)
- ×ボタンが押されたときのバグ防止
- ボタンサイズや位置の改良
- Python自体の終了処理を更に追加
- 結合時に空白のページを追加できる機能を追加
- readme.md更新(Sheild.ioによるバッジ追加)
2023/12/26 (v4.2.0)
- 空白のページの削除に対応
- 空白のページが先頭に並んでいた場合の特殊処理を追加
2024/01/06 (v5.0.0)
- 特定の枚数でまとめた分割の対応/圧縮と分割に関して単一のファイルを読み込むように修正
- pdf-compressorのダイアログが複数間違っていたため修正
- 圧縮関係における名前の埋め込みをf-strings(フォーマット文字列リテラル)へ変更
- mergerのほうでもwith構文が使われるようにコードを統一
2024/01/14 (v5.1.0)
- f-stringsでエラーが発生したため、元に戻す
- tkinterによるウィンドウのresizableを縦横ともにFalseに設定
- icon.pngが正方形に近くなるように整形
2024/01/25 (v5.2.0)
- pdf-compressorにfaviconのコードが残ってエラーになっていたので削除
- pdf-mergerが終了しないバグを修正
2024/02/11
- readme.mdのコードを整理
2024/02/13
- 画像をフォルダに移動
2024/02/19
- Requirementからcchardetを削除
- Python自体の終了処理を更に追加
2024/02/22
- 型ヒント追加/余剰コードの削除
2024/03/01 (v6.0.0)
- ツール分岐に際してのバグ修正
- データの読み込み/前処理をpreprocessor.pyとして分離。
- pdf-separator/pdf-compressorにおいてpypdfが生成ツールになるのを避けるため、メタデータ保存を実装。
2024/03/08
- バグ・ライブラリ分類の修正
- __name__ ==__main__の際の処理追加
2024/04/04 (v6.1.0)
- ウィンドウの解像度向上とそれに伴う調整
- 終了処理の見直し
2024/04/05 (v6.1.1)
- コードの修正
2024/04/09 (v6.1.2)
- 作成ソフトのメタデータが存在しないファイルの対応
2024/04/29
- 不要な変数/記述の削除
2024/06/22
- readme.mdに目次/ディレクトリ構造を追加
2024/06/30
- readme.mdの構成を大幅に変更
This project is licensed under the MIT License, see the LICENSE file for details.