Skip to content

About

A command-line PDF management tool built with Python. Merge, split, extract pages, rename, and delete PDF files from an interactive terminal menu with color-coded output and automatic logging.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

PDF Manager Pro

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.


Table of Contents


Overview

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.


Sample Files

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 1 PDF open in VS Code

Sample - 2.pdf — a 2-page document containing pages "Welcome" and "Thank You"

Sample 2 PDF open in VS Code


Features

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

Project Structure

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

Requirements

  • Python 3.8 or higher
  • pip (Python package manager)

Python dependencies:

PyPDF2
colorama
tabulate

Installation

1. Clone or download this repository

git clone https://github.com/your-username/pdf-manager-pro.git
cd pdf-manager-pro

2. Create and activate a virtual environment (recommended)

# Windows
python -m venv venv
venv\Scripts\activate

# macOS / Linux
python -m venv venv
source venv/bin/activate

3. Install the dependencies

pip install -r requirements.txt

Usage

1. 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.py

3. Select an option from the interactive menu and follow the prompts


Screenshots

Main Menu

The application opens with a banner and a numbered menu. Enter any number from 1 to 8 to begin.

Main menu of PDF Manager Pro


List PDFs

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.

List of PDF files displayed in a table


PDF Information

Option 2 lets you select a file by number and displays its name, page count, and size in a dedicated info table.

PDF information view for Sample - 1.pdf


Merge PDFs

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/.

Merge operation showing two PDFs selected and output named merged.pdf

The merged output file opens as a 4-page PDF combining all pages from both source files in order.

merged.pdf open in VS Code showing all 4 combined pages


Split PDF

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/.

Split operation showing Sample - 1.pdf split into 2 pages

The output folder shows the individual page files created by the split operation alongside previously generated files.

VS Code file explorer showing the split output folder with page files


Extract Pages

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.

Extract pages operation with page range 1 to 2 and output named extracted.pdf

The extracted file appears alongside all other output files in the pdfs/output/ folder.

VS Code file explorer showing extracted.pdf in the output folder


Delete PDF

Option 7 lists available files and asks you to confirm before permanently deleting the selected PDF.

Delete operation showing confirmation prompt and success message

After deletion, the input folder reflects the removal with only the remaining file visible.

VS Code file explorer showing the input folder after deletion


Folder Layout

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.


Logging

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

License

This project is open-source and available under the MIT License.

Copyright (c) 2026 Sanjansah


Built as part of a Python learning project series.

About

A command-line PDF management tool built with Python. Merge, split, extract pages, rename, and delete PDF files from an interactive terminal menu with color-coded output and automatic logging.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages