Generate Branded PDF Certificates

Produces formal landscape PDF certificates with configurable color themes, optional logos, decorative borders, laurels, and corner ornaments. Built on 'grid' with no external 'LaTeX' or 'Quarto' dependency. Suitable for academic awards, professional recognition, and similar uses.


certify

R-CMD-check Lifecycle:experimental

certify produces formal landscape PDF certificates with configurable color themes, optional logos, decorative borders, laurels, and corner ornaments. The package is built on grid only — no LaTeX or Quarto installation is required.

Installation

# install.packages("remotes")
remotes::install_github("cwimpy/certify")

Usage

library(certify)

make_certificate(
  path          = "jane_doe.pdf",
  recipient     = "Jane A. Doe",
  title         = "Certificate of Achievement",
  award_name    = "Outstanding Student",
  organization  = "University of Somewhere",
  program       = "Bachelor of Arts in Political Science",
  citation      = paste(
    "in recognition of exceptional dedication, scholarship,",
    "and service to the academic community."
  ),
  academic_year = "2025-2026",
  signers       = list(
    list(name = "Alex Chair, Ph.D.", title = "Department Chair")
  )
)

Themes

Three preset palettes are included:

  • cert_theme_classic() — navy and gold on parchment (default)
  • cert_theme_formal() — black and silver on cream
  • cert_theme_warm() — burgundy and gold on warm cream

For full control, build a custom palette with cert_theme():

my_theme <- cert_theme(
  primary      = "#003366",
  primary_dark = "#001f3f",
  accent       = "#c0a062",
  background   = "#fbf8f1"
)

make_certificate(
  path      = "custom.pdf",
  recipient = "Recipient Name",
  theme     = my_theme
)

Two signers, custom logo, custom page size

make_certificate(
  path      = "award.pdf",
  recipient = "Recipient Name",
  title     = "Certificate of Recognition",
  citation  = "in grateful recognition of years of devoted service.",
  signers   = list(
    list(name = "President Name", title = "President"),
    list(name = "Secretary Name", title = "Secretary")
  ),
  logo      = "path/to/your_logo.png",
  width     = 11.69,    # A4 landscape
  height    = 8.27,
  theme     = cert_theme_warm()
)

License

MIT © Cameron Wimpy

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("certify")

0.1.0 by Cameron Wimpy, 5 months ago


https://github.com/cwimpy/certify


Report a bug at https://github.com/cwimpy/certify/issues


Browse source code at https://github.com/cran/certify


Authors: Cameron Wimpy [aut, cre, cph]


Documentation:   PDF Manual  


MIT + file LICENSE license


Imports grDevices, grid, png

Suggests testthat


See at CRAN