A modern, GUI-based Python certificate generator that takes user data from a CSV file and produces customized certificates using a given template image. Designed for event organizers, academic institutions, clubs, and professional bodies who need to generate certificates in bulk — quickly and beautifully.
- ✅ User-friendly GUI interface
- 🖼️ Template-based certificate generation
- 📥 CSV-based bulk input support
- ✍️ Signature-style font support
- 🎨 Font color selection (Black / White)
- 🧪 Live sample output generation
- 📊 Progress bar for generation status
- ⚡ One-click silent launch via desktop shortcut (Windows only)
Certificate-Generator/
│
├── main.py # Main GUI logic
├── run.vbs # Silent launcher for Windows
├── run.bat # Alternate batch launcher
├── icon.ico # Application icon
├── package.txt # Python dependency list
│
├── fonts/
│ └── Photograph Signature.ttf
│
├── template/
│ └── sampleoutput.png
│
└── docs/
└── img/
├── before_run.png
├── after_run.png
├── csv_example.png
└── sample_certificate.png
| Before Launch | After Certificate Generation |
|---|---|
![]() |
![]() |
| Sample CSV | Sample Output |
|---|---|
![]() |
![]() |
📸 Screenshots should be placed inside
docs/img/with the specified names to show previews in your documentation.
- Download Python 3.8+ from python.org
- ✅ Make sure to check “Add Python to PATH” during installation
Navigate to the project folder and run:
pip install -r package.txt- Make sure
Photograph Signature.ttfis in thefonts/folder - The certificate template image must be a
.pngfile of size 1123 x 794 pixels (A4 @ 96 DPI) - Replace
template/sampleoutput.pngwith your custom design or edit the existing one
- Right-click on
run.vbs→Send to→Desktop (create shortcut) - Now you can launch the tool without seeing a terminal window
Double-click the desktop shortcut to run.vbs for clean launch experience.
python main.pyYour input CSV file should contain exactly the following case-sensitive column names:
| NAME | ID | FOLDER |
|---|---|---|
| Rakesh Kundu | 1001 | ECE |
| Alice Johnson | HR | |
| John Doe | 1055 |
NAME– required, case-sensitiveID– optionalFOLDER– optional- If
FOLDERis specified, generated certificates will be saved inside that subfolder
⚠️ Column headers must be in uppercase as shown:NAME,ID,FOLDER
Use the “Sample Output” button before generating certificates to preview the layout and font styling.
- Sample Name:
Rakesh Kundu - ID:
Sample - Folder:
SampleOutput
- Supported format:
.png - Required resolution: 1123 x 794 pixels
- Edit the default template export in
Sample outputusing any image editor (e.g., Photoshop, Canva, Figma, GIMP)
For best results:
- Use high-quality fonts
- Place placeholders in areas with enough space
- Avoid crowding near the name area
- Saved in PNG format:
Name_ID_Certificate.pngorName_Certificate.png - Saved to the current working directory or folder specified in
FOLDERcolumn - Clean file naming avoids overwriting existing files
- Use high-resolution certificate designs for clarity
- Test with a few entries before generating in bulk
- Avoid using special characters in folder names
- Keep backup of your template before editing
- Confirm CSV column headers are correctly typed
Rakesh Kundu
📂 GitHub - rax-2
🌐 Portfolio Website
This project is open-source and free to use under the MIT License. Contributions are welcome!



