指定したファイルサイズを上限としてPDFを複数のファイルに分割するコマンドラインツール
Project description
PDF Size Splitter
指定したファイルサイズ(バイト)を上限として、PDFを複数のファイルに分割するコマンドラインツールです。
ページ構造を破壊せず、指定サイズに収まる最大のページ数ごとに自動で分割します。
特徴(Features)
精密なファイルサイズ分割
PDFの構造を考慮しながら、指定したサイズに近づくようにページ単位で分割します。
オンラインツールでは不安定になりがちな「サイズ基準の分割」を、ローカルで再現性高く実行できます。
ローカル完結で安全
アップロード不要で、すべてローカル環境で処理されます。
機密情報を含むPDFでも安全に扱えるため、業務用途にも適しています。
制限なし・高速処理
オンラインサービスにありがちな
- ファイルサイズ上限
- タスク数制限
- 待ち時間
といった制約がありません。大量ファイルのバッチ処理にも向いています。
透明性のある処理ロジック
分割アルゴリズムはコードとして公開されており、挙動がブラックボックスになりません。
必要に応じてロジックを改良したり、ワークフローに合わせて拡張できます。
ワークフローへの統合が容易
Pythonスクリプトとして動作するため、
- 自動処理パイプライン
- 他ツールとの連携
- GUI化やAPI化
など、用途に応じた柔軟な統合が可能です。
再現性の高い結果
同じ入力に対して常に同じ出力が得られるため、
業務フローや自動化処理で重要な「結果の安定性」を確保できます。
機能
- 指定したサイズ(バイト)でPDFを自動分割
- ページ構造を保持
- 効率的な分割アルゴリズム(平均ページサイズからの予測 + 微調整)
- コマンドラインインターフェース
必須環境
- Python 3.8以上
- 依存ライブラリ: pypdf
インストール方法
PyPIからインストール(推奨)
pip install pdf-size-splitter
ソースからインストール
- リポジトリをクローンまたはダウンロードします。
- 以下のコマンドで依存ライブラリをインストールします。
pip install -r requirements.txt
使い方
以下のコマンド形式で実行します。
python pdf_size_splitter.py <入力PDFのパス> <上限サイズ(バイト)> [-o 出力先ディレクトリ]
実行例
# sample.pdf を 10MB (10000000バイト) 単位で分割し、現在のディレクトリに保存する
python pdf_size_splitter.py sample.pdf 10000000
# sample.pdf を 5MB 単位で分割し、"output" フォルダに保存する
python pdf_size_splitter.py sample.pdf 5000000 -o output
ライセンス
このプロジェクトはMIT Licenseの下で公開されています。詳細は LICENSE ファイルを参照してください。
作者
貢献
貢献を歓迎します!バグ報告や機能リクエストは Issues にてお願いします。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pdf_size_splitter-0.1.3.tar.gz.
File metadata
- Download URL: pdf_size_splitter-0.1.3.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba1ca05760d52c7c15ffc9856a5de6202d68fa7ea32ad70dbe529be8c3481106
|
|
| MD5 |
2c355fcf9860b278fd301f831272b11c
|
|
| BLAKE2b-256 |
7245264d52616bc85b4c988394da3296dd92cae0c250b497b5f63e02e65a1bcd
|
Provenance
The following attestation bundles were made for pdf_size_splitter-0.1.3.tar.gz:
Publisher:
publish-to-pypi.yml on momoandbanana22/pdf-size-splitter
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pdf_size_splitter-0.1.3.tar.gz -
Subject digest:
ba1ca05760d52c7c15ffc9856a5de6202d68fa7ea32ad70dbe529be8c3481106 - Sigstore transparency entry: 1276271056
- Sigstore integration time:
-
Permalink:
momoandbanana22/pdf-size-splitter@33fe741ecb42a1dd06c238a773cd4004b173cbe5 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/momoandbanana22
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@33fe741ecb42a1dd06c238a773cd4004b173cbe5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pdf_size_splitter-0.1.3-py3-none-any.whl.
File metadata
- Download URL: pdf_size_splitter-0.1.3-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c7857cf8a25f44815a2cf2bc6fe2edcb88666a7d1dfb4ee193c360138a7d7d8
|
|
| MD5 |
f6a712325bc532a70b2ab3fa33b14f05
|
|
| BLAKE2b-256 |
c28d136821e0fa3eaa6211addedba76b8ee89d0fe0486710b517379cf58b53f7
|
Provenance
The following attestation bundles were made for pdf_size_splitter-0.1.3-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on momoandbanana22/pdf-size-splitter
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pdf_size_splitter-0.1.3-py3-none-any.whl -
Subject digest:
6c7857cf8a25f44815a2cf2bc6fe2edcb88666a7d1dfb4ee193c360138a7d7d8 - Sigstore transparency entry: 1276271088
- Sigstore integration time:
-
Permalink:
momoandbanana22/pdf-size-splitter@33fe741ecb42a1dd06c238a773cd4004b173cbe5 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/momoandbanana22
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@33fe741ecb42a1dd06c238a773cd4004b173cbe5 -
Trigger Event:
push
-
Statement type: