A modern command-line tool to split BIG PDF files into smaller chunks with real-time progress bars and automatic filename generation.
- π Split PDF files by specified number of pages per chunk
- π― Real-time progress bars showing file creation progress
- π Smart filename generation based on original filename
- π’ Sequential numbering (e.g.,
document_1.pdf,document_2.pdf) - π Configurable output folders
- π₯οΈ Modern CLI with rich help and validation
- π Individual page splitting support
- π¨ Colorized output for better user experience
- π οΈ Robust error handling with fallback methods (pdftk, qpdf)
- β‘ Memory-efficient processing for large files
- π§ Cross-platform (Windows, macOS, Linux)
Download the standalone executable - no Python installation required!
- Windows: Download
pdf-splitter.exefrom Releases
Quick Start with Executable:
# Windows
pdf-splitter.exe document.pdf
# macOS/Linux (make executable first)
chmod +x pdf-splitter
./pdf-splitter document.pdfpip install pdf-splitter-cliRequirements: Python 3.8+
# Basic usage - split every 5 pages (default)
pdf-splitter document.pdf
# Custom chunk size - split every 10 pages
pdf-splitter document.pdf -p 10
# Custom output folder
pdf-splitter document.pdf -o my_chunks
# Split into individual pages
pdf-splitter document.pdf -p 1
# Disable progress bars (useful for scripts)
pdf-splitter document.pdf --no-progresspdf-splitter <input_pdf> [OPTIONS]-p, --pages-per-chunk INTEGER: Pages per output file (default: 5)-o, --output-folder TEXT: Output folder (default: "output_chunks")--no-progress: Disable progress bars--help: Show help message
pdf-splitter document.pdfOutput: document_1.pdf, document_2.pdf, etc. in output_chunks/
pdf-splitter document.pdf -p 10
pdf-splitter document.pdf --pages-per-chunk 10pdf-splitter document.pdf -p 3 -o my_outputpdf-splitter report.pdf -p 1Output: report_1.pdf, report_2.pdf, etc. (one page each)
The tool shows real-time progress as files are created:
Creating PDF files [ββββββββββββββββββββ] 100% (8/8 files) 00:00:15
- File-based progress: Tracks each output file completion
- ETA display: Shows estimated time remaining
- Percentage complete: Visual progress indicator
- Disable option: Use
--no-progressfor scripting
- Memory-efficient processing for multi-GB files
- Automatic garbage collection after each chunk
- Error recovery continues processing if individual pages fail
- File size warnings for files >100MB
If the primary PyPDF method fails, the tool automatically tries:
- pdftk (if installed)
- qpdf (if installed)
- Graceful degradation for corrupted PDFs
- Detailed error messages with suggested solutions
- Partial processing continues even if some pages fail
Files are automatically named using the original filename:
| Input | Output |
|---|---|
document.pdf |
document_1.pdf, document_2.pdf, ... |
report.pdf |
report_1.pdf, report_2.pdf, ... |
/path/to/file.pdf |
file_1.pdf, file_2.pdf, ... |
You can build standalone executables for distribution:
# Clone and setup
git clone https://github.com/jmxt3/pdf-splitter.git
cd pdf-splitter
uv sync
# Build Windows executable
powershell -ExecutionPolicy Bypass -File build_executable.ps1# Clone and setup
git clone https://github.com/jmxt3/pdf-splitter.git
cd pdf-splitter
uv sync
# Build executable
./build_executable.sh# Build for current platform
python build_executables.pyOutput: Executables are created in release/ folder with README files for distribution.
For development or latest features:
git clone https://github.com/jmxt3/pdf-splitter.git
cd pdf-splitter
uv sync # or pip install -e .MIT License - see LICENSE file for details.
Contributions welcome! Please feel free to submit a Pull Request.
Found a bug or have a feature request? Please open an issue on GitHub.
- click: Modern CLI framework
- pypdf: PDF processing library
- 0.1.2: Updated PyPI page with complete README content including standalone executables
- 0.1.1: Added standalone executables for Windows, macOS, and Linux
- 0.1.0: Initial release with progress bars and robust error handling
- Standalone Executables: Download from Releases
- No Python installation required
- Single file download
- Works immediately after download
- PyPI Package:
pip install pdf-splitter-cli- Integrates with Python environments
- Easy to include in scripts
- Automatic dependency management
