- Batch-first workflow: upload multiple PDFs and split them in one run
- Built for large files: optimized paths and fallback recovery for tough inputs
- Clear visibility: live progress, preview, and metadata for confidence
- One-click export: zip packaging for fast download
- By pages
- By size
- By range
- By chapters (auto-detect or custom)
- Large-file mode with memory monitoring
- Automatic fallback splitting on errors
- Optional integrity checks and analysis
- Output folder picker
- Live progress with speed and ETA
- Preview and metadata panel
# Clone
git clone https://github.com/JACK-bopp/pdf-splitter.git
cd pdf-splitter
# Install dependencies
pip install -r requirements.txt
# Start the web app
python pdf_web_app.pyDefault: http://127.0.0.1:5000
Custom port:
PDF_SPLITTER_PORT=5001 python pdf_web_app.py- Upload PDFs (click or drag)
- Choose split mode
- Start processing
- Download results
- Pages per file:
10 - Target size:
5(MB) - Range:
1-10,15-25 - Chapter: auto-detect or custom list
- Duration per run
- Peak memory usage
- Failure rate across runs
- Preview not available: ensure
PyMuPDFis installed (seerequirements.txt) - Invalid output path: the app will try to create the folder, check permissions
- Cancel behavior: stops quickly but may keep already generated files
- Port 5000 in use: set
PDF_SPLITTER_PORT=5001or disable AirPlay Receiver on macOS
- Python: 3.7+
- OS: Windows / macOS / Linux
- Memory: 2GB minimum, 8GB recommended
- Browser: Chrome, Firefox, Safari, Edge
- Optional: PyMuPDF for preview
pdf-splitter/
|-- pdf_web_app.py # Web app server
|-- pdf_processor.py # Core processing engine
|-- pdf_chapter_splitter.py # Chapter detection
|-- templates/
| `-- index.html # Frontend UI
`-- requirements.txt # Dependencies
- Fork this repo
- Create a feature branch
- Commit your changes
- Open a Pull Request
Issues and feature requests are welcome: https://github.com/JACK-bopp/pdf-splitter/issues
Thanks to everyone who contributes code, feedback, and bug reports. If this project helps you, please consider giving it a Star.
Email: 15623870239@163.com
Phone: 15623870239
GitHub: @JACK-bopp
Licensed under the MIT License - see LICENSE.
