This program extracts cut-off data from MHTCET (Maharashtra Common Entrance Test) PDFs and converts them into an easy-to-use Excel workbook. It also generates an Optimal College list — the best possible college-course combination sorted by rank — to help you make informed choices during MHT CET CAP round counselling.
This program can create a personalised optimal college list for you to use while filling out your MHT CET CAP round preferences.
- Recursive PDF Discovery: Scans a specified root folder and all its subdirectories for
.pdffiles. - Data Extraction: Parses text and tables from PDFs to extract college admission cut-off data, including college codes, course names, categories, ranks, and percentiles.
- Excel Output: Generates a single
.xlsxfile per PDF with two sheets:- Cut-off Data — all extracted rows with full details (college, course, status, level, stage, category, rank, percentile).
- Optimal College list — one row per college-course combination showing the best (minimum) rank and its associated percentile, sorted ascending by rank so you can easily identify the most accessible options.
- Duplicate Table Handling: Skips duplicate tables within a PDF to ensure data integrity.
- Auto-fitted columns, frozen headers, and filters on both sheets for easy browsing.
- Python 3
- Required libraries listed in
requirements.txt
- Clone this repository:
git clone https://github.com/TheTechTiger/MHTCET-cutoff-pdf-to-excel.git cd MHTCET-cutoff-pdf-to-excel - Install the required dependencies:
pip install -r requirements.txt
Place your MHTCET cut-off PDFs inside the cut_off_pdfs/ folder (or any folder of your choice), then run:
python cet_2024.pyThis will process all PDFs in the default ./cut_off_pdfs/ directory. To use a different folder:
python cet_2024.py /path/to/your/pdf_folder/Optional argument:
To process only the first N pages of each PDF (useful for testing):
python cet_2024.py /path/to/your/pdf_folder/ --max-pages 5For each PDF (e.g. 2025ENGG_CAP1_CutOff.pdf), the script generates:
- Excel file (
2025ENGG_CAP1_CutOff.xlsx) containing:- Sheet 1 "Cut-off Data" — All extracted rows with columns:
- Sr. No., Page, College Code, College Name, Course Code, Course Name, Status, Level, Stage, Caste/Category, Cut‑off Rank, Cut‑off Percentile
- Sheet 2 "Optimal College list" — Best rank per college-course, sorted ascending, with columns:
- Sr. No., College Code, College Name, Course Code, Course Name, Cut‑off Rank, Cut‑off Percentile
- Sheet 1 "Cut-off Data" — All extracted rows with columns:
- Log file (
2025ENGG_CAP1_CutOff.log) — detailed extraction logs for troubleshooting.
The script uses pdfplumber and PyPDF2 to read PDFs. It iterates through pages, extracting text lines and tables. Regular expressions identify key information such as college details, course details, admission status, and cut-off levels. A table fingerprinting mechanism prevents processing redundant data. The extracted data is then structured and written to an Excel workbook with auto-fitted column widths, frozen headers, and filters.
This project is licensed under the GNU Affero General Public License v3.0 — see the LICENSE file for details.