A command-line PDF management tool built with Python. Manage your PDF files entirely from the terminal — merge, split, extract pages, rename, and delete, with color-coded output and automatic logging included out of the box.
- Overview
- Sample Files
- Features
- Project Structure
- Requirements
- Installation
- Usage
- Screenshots
- Folder Layout
- Logging
- License
PDF Manager Pro is a terminal-based application that brings the most common PDF operations under one roof. Instead of reaching for heavyweight GUI software or unreliable online tools, this project lets you work with PDF files locally, quickly, and without leaving the command line.
The application uses PyPDF2 for PDF manipulation, colorama for color-coded terminal output, and tabulate for clean, readable table displays.
The following sample PDFs were used to demonstrate all features shown in the screenshots below.
Sample - 1.pdf — a 2-page document containing pages "HI" and "Hello"
Sample - 2.pdf — a 2-page document containing pages "Welcome" and "Thank You"
| Feature | Description |
|---|---|
| List PDFs | View all PDF files in the input folder with name, page count, and file size |
| PDF Information | Display detailed metadata for any selected PDF |
| Merge PDFs | Combine two or more PDFs into a single output file |
| Split PDF | Break a PDF into individual single-page files |
| Extract Pages | Pull a specific page range from a PDF into a new file |
| Rename PDF | Rename any PDF file in the input folder |
| Delete PDF | Safely delete a PDF with a confirmation prompt |
| Logging | All operations are automatically recorded to a log file |
05-PDF-Manager/
│
├── app.py # Main application entry point and menu handlers
├── pdf_manager.py # Core PDF operations (merge, split, extract, rename, delete)
├── utils.py # Banner, menu display, and color-coded message helpers
├── requirements.txt # Python dependencies
│
├── pdfs/
│ ├── input/ # Place your source PDF files here
│ └── output/ # All generated files are saved here
│
├── screenshots/ # Screenshots used in this README
│
└── logs/
└── pdf_manager.log # Auto-generated operation log
- Python 3.8 or higher
- pip (Python package manager)
Python dependencies:
PyPDF2
colorama
tabulate
1. Clone or download this repository
git clone https://github.com/your-username/pdf-manager-pro.git
cd pdf-manager-pro2. Create and activate a virtual environment (recommended)
# Windows
python -m venv venv
venv\Scripts\activate
# macOS / Linux
python -m venv venv
source venv/bin/activate3. Install the dependencies
pip install -r requirements.txt1. Add your PDF files to the input folder
pdfs/input/
The pdfs/input/ and pdfs/output/ folders are created automatically on the first run if they do not exist.
2. Run the application
python app.py3. Select an option from the interactive menu and follow the prompts
The application opens with a banner and a numbered menu. Enter any number from 1 to 8 to begin.
Option 1 scans the pdfs/input/ folder and displays all PDF files in a formatted table showing the file number, name, page count, and size.
Option 2 lets you select a file by number and displays its name, page count, and size in a dedicated info table.
Option 3 asks you to select files by number separated by commas, then prompts for an output filename. The merged file is saved to pdfs/output/.
The merged output file opens as a 4-page PDF combining all pages from both source files in order.
Option 4 splits every page of a selected PDF into its own individual file. All page files are saved inside a named subfolder under pdfs/output/.
The output folder shows the individual page files created by the split operation alongside previously generated files.
Option 5 extracts a specific range of pages from a selected PDF into a new file. Enter a start page, an end page, and an output filename.
The extracted file appears alongside all other output files in the pdfs/output/ folder.
Option 7 lists available files and asks you to confirm before permanently deleting the selected PDF.
After deletion, the input folder reflects the removal with only the remaining file visible.
After running a few operations, your project folder will look like this:
pdfs/
├── input/
│ └── Sample.pdf
│
└── output/
├── merged.pdf
├── extracted.pdf
└── Sample - 1_pages/
├── Sample - 1_page_1.pdf
└── Sample - 1_page_2.pdf
All output is organized cleanly in pdfs/output/. Split files are grouped into a named subfolder based on the source PDF filename.
Every operation is automatically logged to logs/pdf_manager.log. The file is created on first run and grows incrementally across sessions, giving you a full audit trail.
Example log entries:
2026-08-10 10:15:03 - INFO - PDF Manager Pro started
2026-08-10 10:15:10 - INFO - Listed 2 PDF file(s)
2026-08-10 10:15:22 - INFO - Selected PDF: Sample - 1.pdf
2026-08-10 10:15:35 - INFO - Merged 2 PDFs into merged.pdf
2026-08-10 10:16:01 - INFO - Split Sample - 1.pdf into 2 pages
2026-08-10 10:16:20 - INFO - Extracted pages 1-2 from Sample - 1.pdf into extracted.pdf
2026-08-10 10:17:03 - INFO - Deleted PDF: Sample - 2.pdf
2026-08-10 10:17:10 - INFO - PDF Manager Pro closed
This project is open-source and available under the MIT License.
Copyright (c) 2026 Sanjansah
Built as part of a Python learning project series.












