Skip to content

Repository files navigation

CertiBatch logo

CertiBatch

CertiBatch is a portable Windows desktop app for generating personalized certificates and diplomas in bulk.

You load an image template (PNG/JPG), load a multi-document YAML file with recipient data, draw text (or photo) areas on a preview canvas, assign YAML keys to text areas, optionally link a folder of portrait photos, and export one high-resolution certificate per record.

No installer. One self-contained .exe. Designed for designers who need to ship batches of certificates without repeating the same manual work twenty or thirty times.

image

Why this project exists

As a designer, batch certificate work is a common pain: same layout, different names, IDs, and dates — often 20 or 30 files for a single event or course.

Doing that by hand in Photoshop, Illustrator, or Canva means:

  • opening the same file again and again
  • swapping text fields carefully
  • exporting and renaming each file
  • hoping nothing drifts out of alignment

It works, but it is slow and mentally draining. CertiBatch was built to accelerate that workflow: place the boxes once, map them to YAML keys (and photos by ID), and generate the full batch in one run.

Estimated time comparison

Times below assume a finished certificate design and a ready list of recipients. They are realistic designer estimates, not lab benchmarks.

Scenario Manual (Photoshop / Illustrator / Canva) With CertiBatch
20 certificates ~45–90 minutes (edit → export → rename × 20) ~5–10 minutes (load template + YAML, place boxes once, export)
30 certificates ~70–120 minutes ~6–12 minutes
Extra batch, same layout Almost the same time again ~1–3 minutes (new YAML, same boxes if you keep the session)

For larger lists, the gap grows: manual cost scales roughly with every certificate; CertiBatch cost stays close to “one setup + one export.”


Features

  • Load PNG / JPG / JPEG certificate templates (horizontal or vertical)
  • Automatic orientation detection with pixel size
  • Load multi-document YAML (records separated by ---)
  • Dynamic YAML key discovery for field assignment
  • Interactive canvas editor:
    • click-and-drag to draw boxes
    • move / resize / delete
    • per-box Type: Text or Image
    • Zoom the preview with Ctrl + mouse wheel (export coordinates stay correct)
  • Text options: font size, alignment, color
  • Photo folder: match each record’s photo by a YAML key (e.g. dni100025226.jpg)
  • Missing photos are skipped safely (certificate still exports without that image)
  • Bulk export with progress bar
  • Coordinate and font-size scaling from preview → original resolution
  • Theme: Automatic (system) / Light / Dark — toggle under the app title
  • Portable single-file Windows win-x64 executable

User flow

  1. Load template — choose your certificate design image.
  2. Load YAML — one document per recipient.
  3. (Optional) Photos — choose a folder of portraits and a match key (dni, cc, id, …).
  4. Draw areas — boxes for name, ID, date, photo, etc. Use Ctrl + mouse wheel to zoom the preview if needed.
  5. Configure each box — Type = Text (assign YAML key + style) or Image (uses the photo folder).
  6. Create reproduction — pick an output folder; one PNG per YAML record.
  7. Deliver — filenames prefer the first YAML key value when possible.
Template + YAML (+ photos folder)
        ↓
  place text / image boxes
        ↓
  scale preview → real pixels
        ↓
  render text + matched photos
        ↓
  PNGs in output folder

How it works

Preview vs export coordinates

Boxes are drawn on the on-screen preview. On export, position, size, and font size are scaled to the original image pixels.

YAML records

Each YAML document (separated by ---) is one certificate. Missing text keys render as empty strings without stopping the batch.

Photos (folder match)

  1. Select a folder containing portrait files.
  2. Choose a match key from the YAML (ideally a unique numeric ID such as dni).
  3. Name each file {value}.{jpg|jpeg|png} — e.g. 100025226.jpg.
  4. Draw an Image box on the template. At export time, CertiBatch looks up the match-key value for that record and places the photo (cover / center-crop) inside the box.
  5. If a file is missing or unreadable, that certificate is generated without the photo; the rest of the batch continues.

Themes

Under the CertiBatch title: a short label and an icon button cycle Automatic → Light → Dark. Automatic follows Windows app theme. Preference is saved in %AppData%\CertiBatch\settings.json.


Requirements

  • Windows 10/11 (x64)
  • Download the portable .exe from Releases — no installer and no .NET runtime install required

Data

Certificate templates

Accepts horizontal and vertical images (PNG, JPG, JPEG). Orientation is detected automatically.

YAML data format

Multi-document YAML (.yaml / .yml). Each document is one certificate; documents are separated by ---.

Rules:

  • Flat key/value mapping per document.
  • Key names are flexible (nombre, dni, fecha, …).
  • Missing keys on a record leave text empty; export continues.
  • For photos, pick one unique key as the filename (prefer numeric IDs).

Example:

---
nombre: Nombre1 Nombre2 Apellido1 Apellido2
dni: 100025225
fecha: 2025-08-10
---
nombre: Juan Carlos Pérez
dni: 100025226
fecha: 2025-08-11
---
nombre: María Fernanda López
dni: 100025227
fecha: 2025-08-12

With match key dni, place files like 100025225.jpg, 100025226.jpg, 100025227.png in the photos folder.


Tech stack

  • .NET 10 / WPF
  • YamlDotNet — YAML parsing
  • WPF imaging (DrawingVisual / RenderTargetBitmap) — text and photo rendering

About

CertiBatch is a portable Windows desktop app for generating personalized certificates and diplomas in bulk.

Topics

Resources

Stars

Watchers

Forks

Releases

Contributors

Languages