Projects / BulkPDF Gen

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.

archived software July 2021 — July 2021
BulkPDF Gen

Tech Stack

Python PyQt5 GTK3 HTML CSS WeasyPrint

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

Related Topics

# python # pdf-generation # pyqt5 # automation # desktop-app # html-to-pdf # bulk-processing