BulkPDF Gen
A desktop application for generating PDFs in bulk from HTML/CSS templates and CSV data. Perfect for creating certificates, invoices, or any templated documents at scale with just one click.
Tech Stack
What is BulkPDF Gen?
BulkPDF Gen is a desktop application that automates the generation of PDF documents in bulk. Instead of manually creating hundreds of certificates, invoices, or letters, you can design an HTML/CSS template once and let the application populate it with data from a CSV file.
Key Features
- One-Click Bulk Generation: Generate hundreds or thousands of PDFs with a single click
- HTML/CSS Templates: Design documents using familiar web technologies
- Variable Syntax: Use
%variable%syntax to dynamically insert data from CSV columns - Custom Naming: Define output file naming patterns using template variables
- Built-in Editor: Edit templates directly within the application
- Cross-Platform: Works on Windows, macOS, and Linux
How It Works
1. Template System
Create an HTML template with placeholders:
<div class="certificate">
<h1>Certificate of Completion</h1>
<p>This is to certify that</p>
<h2>%Name%</h2>
<p>has completed the course</p>
<h3>%Course%</h3>
<p>with a score of <strong>%Score%</strong></p>
</div>
2. Data Source
Prepare a CSV file where the first row contains column labels that match your template variables:
Name,Course,Score
John Doe,Python Programming,95%
Jane Smith,Web Development,88%
3. Generate
Select your template, data file, and output directory. Click “Generate” and watch as the application creates personalized PDFs for each row in your data.
Use Cases
- Certificates: Course completion, participation, awards
- Invoices: Bulk invoice generation for clients
- Letters: Personalized letters or notices
- Tickets: Event tickets with unique attendee info
- Reports: Templated reports with variable data
Requirements
- Python 3
- GTK3 Runtime (for PDF rendering)
- pip package manager
Getting Started
# Clone the repository
git clone https://github.com/amannirala13/BulkPDF-Gen.git
cd BulkPDF-Gen/src
# Setup virtual environment
chmod +x prep.sh
./prep.sh
source env/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run the application
python app.py
Template Variable Syntax
- Variables are wrapped with
%symbols:%VariableName% - Variable names must match CSV column headers exactly (case-sensitive)
- Can be used in HTML content and output file naming
File naming example: %Name%_Certificate_%Course%.pdf