A simple PDF imposition and print-layout tool.
NOTHI takes an existing PDF and rearranges its pages into customizable grids such as 1×2, 2×2, 2×3, 3×3, and more, making it suitable for printing notes, study materials, handouts, and booklets.
- Custom page grids (rows × columns)
- Portrait or landscape output
- Optional cover page generation
- Print-friendly layout
- Preserves PDF quality using PyMuPDF
- Command-line interface
- Supports any PDF size as input
- Generates standard A4 output
git clone https://github.com/hello2himel/nothi.git
cd nothipython3 -m venv .venv
source .venv/bin/activatepip install pymupdf reportlabRun:
python main.pyYou will be guided through a setup wizard.
Example:
====================================
NOTHI
PDF Imposition Tool
====================================
Source PDF: notes.pdf
Grid Layout
Rows: 2
Columns: 2
Orientation
1. Portrait
2. Landscape
Add cover page? (y/n): y
Title: Physics Notes
Subtitle: SSC Preparation
Extra text: Compiled by Himel Das
Output file [notes_nothi.pdf]:
Generating...
Done.
┌─────┐
│ 1 │
├─────┤
│ 2 │
└─────┘
┌─────┬─────┐
│ 1 │ 2 │
├─────┼─────┤
│ 3 │ 4 │
└─────┴─────┘
┌───┬───┬───┐
│ 1 │ 2 │ 3 │
├───┼───┼───┤
│ 4 │ 5 │ 6 │
├───┼───┼───┤
│ 7 │ 8 │ 9 │
└───┴───┴───┘
Any positive row and column combination is supported.
NOTHI can optionally generate a clean cover page before the imposed document.
Fields:
- Title
- Subtitle
- Additional note
All fields except the title are optional.
- Python 3.10+
- PyMuPDF
- ReportLab
nothi/
├── main.py
├── README.md
├── input.pdf
└── output.pdf
- GUI version (Tkinter)
- Booklet printing mode
- Automatic margins
- Crop marks
- Page numbering
- Headers and footers
- Drag-and-drop support
- Preset layouts
- Duplex printing support
MIT License
"নথি" (Nothi) is a Bengali word meaning "document", "record", or "file", reflecting the tool's purpose of preparing documents for printing and distribution.