Certificate of Completion

A landscape training/course completion certificate - fill it once, or batch-generate one PDF per student straight from a roster CSV.

Certificate of Completion preview

Certificate of Completion

A classic landscape certificate - recipient name, course/program name, completion date, an issuing organization, and an instructor signature - suitable for training providers, workshops, schools, and associations.

What's included

  • A decorative double border with a serif title and a script-font recipient name
  • A gold starburst above the title and a navy/gold ribbon seal near the bottom, both real vector SVG artwork
  • Optional organization logo and instructor signature images
  • roster.csv - a ready-to-run sample batch input (see below)

Examples for Authors

  • CSV batch generation - this project is built specifically to demonstrate Yatate's batch feature: run roster.csv (columns: recipient_name, course_name, completion_date - matching form.json's own field ids exactly) through the app's Batch menu item (or the --batch CLI flag) to generate one certificate PDF per row in one pass, with default supplying the organization-level fields the CSV doesn't drive (issuing organization, instructor name/title).
  • Hand-authored SVG ornaments - starburst.svg/seal.svg are plain vector artwork (a polygon star, circles, a couple of ribbon-tail polygons) referenced from overlay.json image blocks exactly like a raster logo would be ("source": "assets:seal.svg") - rendered as real, crisp vector output, not rasterized. The root <svg> needs explicit numeric width/height attributes matching its viewBox (not 100%), which some vector-editor exports use by default and this app's SVG renderer doesn't handle.
  • Reformatting an engine-side date - process.js reformats completion_date with formatDate() before overlay() ever reads it, the same convention every other date-bearing project in this library uses.
  • A certificate look built mostly from box/text/image blocks - the ornamental border, rule lines, and underline are plain box blocks; the elegant recipient-name treatment is just a script font (GreatVibes) at a larger size.

Customizing

Swap PTSerif/GreatVibes for any other bundled font family to change the tone (a sans-serif family reads more modern/corporate; a different script family changes the signature-style name treatment). Recolor starburst.svg/seal.svg's fill/stroke hex values to match a different palette, or remove either image block entirely. Add your own logo/signature images via the optional fields.