Texify

Badges

Conference badge PDF API

Printable event badge with attendee name, company, ticket tier, track, and QR-ready payload text. Good for conference platforms and check-in tools. Send this LaTeX template and JSON data to Texify in one /render request.

Conference badge PDF preview

JSON schema

Fields this template expects.

FieldTypeRequiredDescription
attendeeobjectYesName, title, company, and ticket type.
eventobjectYesEvent name, date, venue, and brand color.
qr_codestringYesCheck-in or profile URL rendered as monospaced QR-ready payload.
trackstringNoConference track or access group.

API examples

POST LaTeX and JSON. Receive PDF bytes.

curl
cat > conference-badge-payload.json <<'JSON'
{
  "entrypoint": "main.tex",
  "resources": {
    "main.tex": "\\documentclass[10pt]{article}\n\\usepackage[paperwidth=4in,paperheight=6in,margin=0.25in]{geometry}\n\\usepackage{xcolor}\n\\pagestyle{empty}\n\\begin{document}\\sffamily\n\\begin{center}\n{\\Large\\bfseries [[ .event.name ]]}\\\\\n[[ .event.date ]] --- [[ .event.venue ]]\\\\[0.35in]\n{\\Huge\\bfseries [[ .attendee.name ]]}\\\\[0.12in]\n{\\large [[ .attendee.title ]]}\\\\\n{\\large [[ .attendee.company ]]}\\\\[0.25in]\n\\fbox{\\begin{minipage}{0.82\\linewidth}\\centering\\vspace{0.28in}\n{\\large\\texttt{[[ .qr_code ]]}}\\\\[5pt]\n\\small QR-ready payload\n\\vspace{0.28in}\\end{minipage}}\\\\[0.25in]\n{\\Large\\bfseries [[ .attendee.ticket ]]}\\\\[0.08in]\n[[ with .track ]]Track: [[ . ]][[ end ]]\n\\end{center}\n\\end{document}"
  },
  "data": {
    "attendee": {
      "name": "Priya Shah",
      "title": "Platform Engineer",
      "company": "Acme GmbH",
      "ticket": "Speaker"
    },
    "event": {
      "name": "API Conf 2026",
      "date": "2026-09-14",
      "venue": "Berlin"
    },
    "qr_code": "https://checkin.example.com/t/abc123",
    "track": "AI Systems"
  }
}
JSON

curl -sS -X POST https://api.texify.dev/render \
  -H "Content-Type: application/json" \
  --data @conference-badge-payload.json \
  --output conference-badge.pdf
Python
import json
import requests

payload = json.loads(r'''{
  "entrypoint": "main.tex",
  "resources": {
    "main.tex": "\\documentclass[10pt]{article}\n\\usepackage[paperwidth=4in,paperheight=6in,margin=0.25in]{geometry}\n\\usepackage{xcolor}\n\\pagestyle{empty}\n\\begin{document}\\sffamily\n\\begin{center}\n{\\Large\\bfseries [[ .event.name ]]}\\\\\n[[ .event.date ]] --- [[ .event.venue ]]\\\\[0.35in]\n{\\Huge\\bfseries [[ .attendee.name ]]}\\\\[0.12in]\n{\\large [[ .attendee.title ]]}\\\\\n{\\large [[ .attendee.company ]]}\\\\[0.25in]\n\\fbox{\\begin{minipage}{0.82\\linewidth}\\centering\\vspace{0.28in}\n{\\large\\texttt{[[ .qr_code ]]}}\\\\[5pt]\n\\small QR-ready payload\n\\vspace{0.28in}\\end{minipage}}\\\\[0.25in]\n{\\Large\\bfseries [[ .attendee.ticket ]]}\\\\[0.08in]\n[[ with .track ]]Track: [[ . ]][[ end ]]\n\\end{center}\n\\end{document}"
  },
  "data": {
    "attendee": {
      "name": "Priya Shah",
      "title": "Platform Engineer",
      "company": "Acme GmbH",
      "ticket": "Speaker"
    },
    "event": {
      "name": "API Conf 2026",
      "date": "2026-09-14",
      "venue": "Berlin"
    },
    "qr_code": "https://checkin.example.com/t/abc123",
    "track": "AI Systems"
  }
}''')
response = requests.post(
    "https://api.texify.dev/render",
    json=payload,
    timeout=90,
)
response.raise_for_status()

with open("conference-badge.pdf", "wb") as pdf:
    pdf.write(response.content)
Node fetch
import { writeFile } from "node:fs/promises";

const payload = {
  "entrypoint": "main.tex",
  "resources": {
    "main.tex": "\\documentclass[10pt]{article}\n\\usepackage[paperwidth=4in,paperheight=6in,margin=0.25in]{geometry}\n\\usepackage{xcolor}\n\\pagestyle{empty}\n\\begin{document}\\sffamily\n\\begin{center}\n{\\Large\\bfseries [[ .event.name ]]}\\\\\n[[ .event.date ]] --- [[ .event.venue ]]\\\\[0.35in]\n{\\Huge\\bfseries [[ .attendee.name ]]}\\\\[0.12in]\n{\\large [[ .attendee.title ]]}\\\\\n{\\large [[ .attendee.company ]]}\\\\[0.25in]\n\\fbox{\\begin{minipage}{0.82\\linewidth}\\centering\\vspace{0.28in}\n{\\large\\texttt{[[ .qr_code ]]}}\\\\[5pt]\n\\small QR-ready payload\n\\vspace{0.28in}\\end{minipage}}\\\\[0.25in]\n{\\Large\\bfseries [[ .attendee.ticket ]]}\\\\[0.08in]\n[[ with .track ]]Track: [[ . ]][[ end ]]\n\\end{center}\n\\end{document}"
  },
  "data": {
    "attendee": {
      "name": "Priya Shah",
      "title": "Platform Engineer",
      "company": "Acme GmbH",
      "ticket": "Speaker"
    },
    "event": {
      "name": "API Conf 2026",
      "date": "2026-09-14",
      "venue": "Berlin"
    },
    "qr_code": "https://checkin.example.com/t/abc123",
    "track": "AI Systems"
  }
};

const response = await fetch("https://api.texify.dev/render", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify(payload),
  signal: AbortSignal.timeout(90_000),
});

if (!response.ok) throw new Error(await response.text());

const pdf = Buffer.from(await response.arrayBuffer());
await writeFile("conference-badge.pdf", pdf);

The template

LaTeX source sent as resources["main.tex"].

main.tex
\documentclass[10pt]{article}
\usepackage[paperwidth=4in,paperheight=6in,margin=0.25in]{geometry}
\usepackage{xcolor}
\pagestyle{empty}
\begin{document}\sffamily
\begin{center}
{\Large\bfseries [[ .event.name ]]}\\
[[ .event.date ]] --- [[ .event.venue ]]\\[0.35in]
{\Huge\bfseries [[ .attendee.name ]]}\\[0.12in]
{\large [[ .attendee.title ]]}\\
{\large [[ .attendee.company ]]}\\[0.25in]
\fbox{\begin{minipage}{0.82\linewidth}\centering\vspace{0.28in}
{\large\texttt{[[ .qr_code ]]}}\\[5pt]
\small QR-ready payload
\vspace{0.28in}\end{minipage}}\\[0.25in]
{\Large\bfseries [[ .attendee.ticket ]]}\\[0.08in]
[[ with .track ]]Track: [[ . ]][[ end ]]
\end{center}
\end{document}

Live render

Try sample data now.

Posts this LaTeX template and sample JSON to /render, then opens the returned PDF bytes.

Sample data
{
  "attendee": {
    "name": "Priya Shah",
    "title": "Platform Engineer",
    "company": "Acme GmbH",
    "ticket": "Speaker"
  },
  "event": {
    "name": "API Conf 2026",
    "date": "2026-09-14",
    "venue": "Berlin"
  },
  "qr_code": "https://checkin.example.com/t/abc123",
  "track": "AI Systems"
}

FAQ

FAQ

Can I use Conference badge as a badge PDF API?

Yes. Copy the LaTeX template, send it in resources with your data to /render, and Texify returns PDF bytes.

Can I change colors, copy, or field names?

Yes. Edit the LaTeX source and JSON placeholders to match your data model and brand before posting to /render.

Does this render real PDF text?

Yes. Texify compiles LaTeX to PDF, so text remains selectable, searchable, and stable across environments.