PDF templates / Certificate

Formal Certificate

Landscape A4 certificate of achievement in a warm gold-and-brown palette: a gold accent stripe, the awarding body above a rule, the title and an honour line, a presentation line over the recipient's name in bold sans-serif, a thin separator, the programme name and a centred description paragraph. Ruled signature lines — one per signatory in the data — and a cream credential-ID strip close the page.

First page of the Formal Certificate template, rendered with its sample data
certificate-formal.pdfpage 1 of 1

DSL source

The whole template. Learn the language in the template DSL guide.

js
const accent = "#8B6F3F";
const dark = "#2A2418";

const template = doc({ size: { width: 842, height: 595 }, title: "{{title}} — {{recipientName}}", padding: [28, 36, 28, 36] },
  // Decorative top stripe
  r({ "background-color": accent, height: 6, margin: [0, 0, 14, 0] }),

  // Awarding body
  r({ align: "center", margin: [0, 0, 4, 0] },
    s({ "font-family": "NotoSans", "font-size": 11, "font-weight": "bold", color: dark, "letter-spacing": 0 }, "{{awardingBody}}")
  ),
  r({ align: "center" },
    s({ "font-size": 8, color: "#8A7F6A", "font-style": "italic" }, "{{seal.motto}} · {{seal.year}}")
  ),

  hr(8, accent),

  // Title
  r({ align: "center", margin: [4, 0, 2, 0] },
    s({ "font-family": "NotoSans", "font-size": 22, "font-weight": "bold", color: dark }, "{{title}}")
  ),

  // Honour line
  r({ align: "center", margin: [0, 0, 10, 0] },
    s({ "font-size": 11, "font-style": "italic", color: accent }, "awarded {{honor}}")
  ),

  // Presented to
  r({ align: "center", margin: [0, 0, 4, 0] },
    s({ "font-size": 10, color: "#6B6250" }, "This certificate is presented to")
  ),

  // Recipient name
  r({ align: "center", margin: [2, 0, 6, 0] },
    s({ "font-family": "NotoSans", "font-size": 20, "font-weight": "bold", color: dark }, "{{recipientName}}")
  ),

  // Thin accent separator
  r({ align: "center", margin: [0, 0, 8, 0] },
    col({ width: 140, "background-color": accent, height: 1 })
  ),

  // Programme
  r({ align: "center", margin: [0, 0, 8, 0] },
    s({ "font-size": 12, "font-weight": "bold", color: dark }, "{{programName}}")
  ),

  // Description
  r({ align: "center", margin: [0, 40, 12, 40] },
    s({ "font-size": 10, color: "#3F382A", "line-height": 1.45, align: "center" }, "{{description}}")
  ),

  // Signatories row
  table(
    [["", "33%", "center"], ["", "34%", "center"], ["", "33%", "center"]],
    null,
    []
  ),
  r({ margin: [6, 0, 0, 0] },
    each("sig in signatories",
      col("33%",
        r({ align: "center", margin: [0, 0, 2, 0] },
          col({ width: 160, "background-color": dark, height: 0.8 })
        ),
        r({ align: "center" },
          s({ "font-size": 10, "font-weight": "bold", color: dark }, "{{sig.name}}")
        ),
        r({ align: "center" },
          s({ "font-size": 9, "font-style": "italic", color: "#6B6250" }, "{{sig.title}}")
        )
      )
    )
  ),

  // Date & location row
  r({ align: "center", margin: [10, 0, 10, 0] },
    s({ "font-size": 9, color: "#6B6250" }, "Issued {{date}} · {{presentationLocation}} · {{seal.label}}")
  ),

  // Credential ID strip
  r({ "background-color": "#F4EFE4", padding: [6, 10, 6, 10], margin: [0, 0, 0, 0], align: "center" },
    s({ "font-family": "Cousine", "font-size": 9, color: dark }, "CREDENTIAL ID  ·  {{credentialId}}")
  ),

  ftrPages("{{awardingBody}}"),
);

const sampleData = {
  title: "Certificate of Achievement",
  recipientName: "Dr. Amara Osei-Bernstein",
  awardingBody: "The Cascadia Institute of Design Leadership",
  date: "18 April 2026",
  presentationLocation: "Seattle, Washington",
  programName: "Advanced Practice in Systems Design — 2026 Cohort",
  description: "In recognition of outstanding completion of the Advanced Practice in Systems Design programme, demonstrating exceptional scholarship, original research, and sustained contribution to the cohort community. This certificate is awarded with distinction for work that exemplifies the highest standards of the discipline.",
  credentialId: "CID-2026-AD-00417",
  honor: "with Distinction",
  signatories: [
    { name: "Professor Ingrid Halvorsen", title: "Dean of Faculty" },
    { name: "Marcus R. Chen", title: "Programme Director" },
    { name: "Dr. Priya Raman-Whitfield", title: "Chair of Examiners" },
  ],
  seal: {
    label: "Official Seal",
    motto: "Per Studium ad Excellentiam",
    year: "Est. 1947",
  },
};

Sample data

json
{
  "title": "Certificate of Achievement",
  "recipientName": "Dr. Amara Osei-Bernstein",
  "awardingBody": "The Cascadia Institute of Design Leadership",
  "date": "18 April 2026",
  "presentationLocation": "Seattle, Washington",
  "programName": "Advanced Practice in Systems Design — 2026 Cohort",
  "description": "In recognition of outstanding completion of the Advanced Practice in Systems Design programme, demonstrating exceptional scholarship, original research, and sustained contribution to the cohort community. This certificate is awarded with distinction for work that exemplifies the highest standards of the discipline.",
  "credentialId": "CID-2026-AD-00417",
  "honor": "with Distinction",
  "signatories": [
    {
      "name": "Professor Ingrid Halvorsen",
      "title": "Dean of Faculty"
    },
    {
      "name": "Marcus R. Chen",
      "title": "Programme Director"
    },
    {
      "name": "Dr. Priya Raman-Whitfield",
      "title": "Chair of Examiners"
    }
  ],
  "seal": {
    "label": "Official Seal",
    "motto": "Per Studium ad Excellentiam",
    "year": "Est. 1947"
  }
}

Render it with your data

Any API key can render this template by its ID. This call uses the sample data; add a data object to use your own. See the API reference.

bash
curl -X POST https://makespdf.com/api/v1/render \
  -H "Authorization: Bearer $MAKESPDF_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"templateId": "certificate-formal"}' \
  -o output.pdf