Sign up ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Since LaTeX can produce outstanding typesetting results and excellent graphics design, I began to wonder if it can recreate certificates. With so many packages and styles out there does anyone know if there is one to create certificate templates like the following example.

Free diploma certificate

I suppose that the borders would be the limiting factor like those shown here.

share|improve this question
Regarding the borders, maybe you should have a look at this question, and especially at Altermundus' answer. –  ienissei Mar 1 '12 at 19:44
@ienissei I just read that post a few minutes ago and that is why I began to wonder about certificates. –  azetina Mar 1 '12 at 19:49
This would make a good candidate for a beamer package using Tikz/pgf to create the borders. I would envision a set of certificate themes and alternatives for the contents. –  R. Schumacher Mar 1 '12 at 21:49

6 Answers 6

I had to prepare certificates for a workshop recently and this is how I did it.

First, I prepared a border using smartdraw and called it border-2.jpg. enter image description here

Since certificates are given to many, I used datatool package. I used the particulars of participants in a .csv file namelist-1.csv like this:

Dr,Abdul Ali,Assistant Professor, E \& I,Pondicherry Engineering College, Pondicherry - 605 014 
Mrs,Francesca Joestar,Assistant Professor, ECE,Pondicherry Engineering College, Pondicherry - 605 014 
Mr,Chan Ker Mei,Assistant Professor, CSE,Pondicherry Engineering College, Pondicherry - 605 014 
Dr,Hikaru Yagami,Assistant Professor, Mechanical Engg.,Pondicherry Engineering College, Pondicherry - 605 014 
Dr,Harish Kumar,Professor,Physics,Pondicherry Engineering College, Pondicherry - 605 014
Dr,R. Rajathy,Assistant Professor, EEE,Pondicherry Engineering College, Pondicherry - 605 014 

and finally the latex code to generate the certificates is:

\hyphenpenalty 100000
\input Zallman.fd
\hfill \parbox[t]{2.8in}{\shortstack{\vrule width 2.8in height 0.4pt\\\small#2}}}
\def\sigskip{\vskip0.4in plus 0.1in}
        \def\beginskip{\vskip0.5875in plus 0.1in}
\dg=degree, \name=Name, \dgn=Dgn, \sub=subject, \inst=inst, \place=place}{
    {\LARGE\bfseries {\color{other}{{ Pondicherry  Engineering College}}}}\\%\initfamily
    {\calligra Puducherry} -- {\calligra 605 014\\}
    {\large ISTE Short Term Training Program on\\}
    {\Large\bfseries\color{phd}{NANO ENGINEERING MATERIALS}}}\\
    {\Large\bfseries \color{title}{Certificate of Participation}}\par

This is to certify that \uuline{{\large\sffamily\bfseries\color{name}{\dg. \MakeUppercase{\name}}}}, { \dgn}
of {\sub}, {\inst}, {\place},
has successfully participated in the two week  Short  Term   Training  Program
on  ``\emph{\color{phd}{Nano   Engineering   Materials}}''   sponsored   by  ISTE  and  organized  by  Department of  Physics, Pondicherry  Engineering   College,  Puducherry,  from
13$^{\text{th}}$ December to 23$^{\text{rd}}$ December 2010.}

 \sigskip \signature{}{Dr. Harish Kumar \\ Co-ordinator }
\sigskip \signature{}{Dr. Harish Kumar \\ Co-ordinator }
\sigskip \signature{}{Dr. Harish Kumar \\ Principal }

pec_emblem and istelogo-1 are the logos:

enter image description here enter image description here

And finally the certificate is here: enter image description here

This is just for fun and dedicated to Paulo :)

enter image description here

share|improve this answer
+1 Very nice result. --- I'm disappointed: you're the co-ordinator, co-ordinator, and principal, it'd be neat if you were also the assistant professor too ;-). –  Bruno Le Floch Mar 2 '12 at 8:17
@BrunoLeFloch, Ooops and sorry, that is a dummy text put for illustration only. I just wanted to illustrate that we can put multiple signatures at the bottom with their role. –  Harish Kumar Mar 2 '12 at 9:23
@Dr.HarishKumar Nice output. –  azetina Mar 2 '12 at 16:24
Nicely done borders! –  LianTze Lim Mar 7 '12 at 11:59

Mi little contribution with niceframe and wallpaper packages: enter image description here




{\border \char113} % up left
{\border \char109} % up
{\border \char112} % up right
{\border \char108} % left 
{\border \char110} % right
{\border \char114} % lower left
{\border \char111} % bottom
{\border \char115} % lower right



{\small University of Nobodyknows}\\

\tiny In honour of out standing performance and dedication to waste time in class we hereby award the}


{\textit{Certificate of}}

\textcolor{black}{\large \textsc{Biggest Sleeper Class}}


to: \uline{\textcolor{black}
{Mr. Dormouse Overwintering Marmot}}

(Master degree)


Dr. DavidRestless  & &  Dr. Peter Awakened & & Dr. John Workerhard \\
Head of  Department & & Examinor & & Academic Advisor \\ 

The images used in this certificate are:

The tile (really a IM FELL FLOWERS 1 font converted to image):

Wallpaper tiling

The University Coat of Arms (self-made pdf with Inkscape using open svg clip-arts). Note that the MWE use the pdf version (change the extension if you wan to compile with this png).

University Coat of Arms

share|improve this answer
This is incredible, can you provide the png files you used? –  azetina Sep 23 '12 at 3:32
@azetina, of course, I've uploaded the two images. –  Fran Sep 23 '12 at 5:42
Nice output. where do we get information on characters (\char115).? –  Harish Kumar Sep 23 '12 at 6:49
@HarishKumar, I handle the umrandb characters of niceframe package as explained in this forgotten answer. –  Fran Sep 23 '12 at 7:00

There are two approaches you can use. One is to import a picture and accurately place the text over it using the overpic package (see for some macros and a key value approach to assist in placing the text). The second is to build the certificate from scratch. If you want a fancy and modern border use the braids package or you can do one with TikZ (note the modern trend is not to use a fancy border).

enter image description here

{\LARGE\itshape This is to certify the Yiannis Lazarides has been\\
 a member of this site for two  years and has answered 500 questions.\par}
\hbox to 0.9\textwidth{\hfill\Large The Chief Member}
\hbox to 0.9\textwidth{\hfill\Large\bfseries egreg}
share|improve this answer

I have not built entirely the certificates but it's easy to complete the frame.

enter image description here

enter image description here




\begin{tikzpicture}[color=MidnightBlue,transform shape,scale=1.5, 
                     every node/.style={inner sep=0pt}]
\node[minimum width=10cm,minimum height=8cm,fill=gray!70!blue!15,inner sep=0pt](vecbox){}; 
\node[anchor=north west] at (vecbox.north west)%
\node[anchor=north east] at (vecbox.north east)%
\node[anchor=south west] at (vecbox.south west)%
\node[anchor=south east] at (vecbox.south east)%
 \node[anchor=north,yshift=2pt] at (vecbox.north){\pgfornament[width=8 cm,symmetry=h]{88}};
 \node[anchor=south,yshift=-2pt] at (vecbox.south){\pgfornament[width=8 cm]{88}};
 \node[anchor=north,rotate=90,yshift=2pt]  at (vecbox.west){\pgfornament[width=6 cm,symmetry=h]{88}};
 \node[anchor=north,rotate=-90,yshift=2pt] at (vecbox.east){\pgfornament[width=6 cm,symmetry=h]{88}};
 \node[yshift=2cm] (text) at ({\huge Free Diploma College}; 

 \tikzset{pgfornamentstyle/.style={draw = Periwinkle,
                                  fill = purple}}  
\begin{tikzpicture}[color=MidnightBlue,transform shape,scale=1.5, 
                     every node/.style={inner sep=0pt}]
   \draw[fill=gray!70!blue!15](-1.1,0) rectangle coordinate (text) (9.1,8) ;                 
  \foreach \i in {0,2,4,6,8}
     { \node[anchor=south] at (\i,7.32){\pgfornament[width=2 cm]{70}};
       \node[anchor=south] at (\i,0){\pgfornament[width=2 cm]{70}};}
         \foreach \i in {2,4,6,8}
     { \node[anchor=south,rotate=90] at  (-.4cm,\i*0.8){\pgfornament[width=2 cm]{70}};
       \node[anchor=north,rotate=90] at (8.4cm,\i*0.8){\pgfornament[width=2 cm]{70}};} 
   \node[yshift=2cm]  at (text){\huge Free Diploma College};  

share|improve this answer
Nice output with your pgornament. Have you seen my post on guilloche? –  azetina Mar 2 '12 at 16:23
yes and I gave a first answer but I need to find another curve. The problem is completely different. I know that it's about pattern but you need function to draw guilloche. –  Alain Matthes Mar 2 '12 at 16:45
I figured that one. I remember when my professor asked me to come up with a function that draws a heart... –  azetina Mar 2 '12 at 16:50
This is just beautiful! –  percusse Mar 2 '12 at 18:12
I wanted to use LaTeX entirely for the certificate but for borders Hmmmmm... But now Altermundus has a way. My next certificate will be entirely using LaTeX (including borders... Courtesy pgfornaments and Altermundus.). Thanks @Altermundus. Great work. –  Harish Kumar Mar 3 '12 at 0:35

Just for fun with PSTricks. The package psvectorian is not included in TeXLive so you need to download it from and install it. Unfortunately, the manual in English is not available.

enter image description here


% cotes
\rput(0,0){\Huge Garbage Collector}

share|improve this answer
Just a reminder: One of our senior TikZers Alain Matthes is working on the PGF/TikZ counterpart pgfornament which is currently in beta. –  percusse Sep 22 '12 at 18:19
@percusse: I submitted this answer to show there is a PSTricks counterpart for pgfornament used by Alain Matthes. :-) –  kiss my armpit Sep 22 '12 at 18:41
I'll leave my comment here for a proof of my stupidity :) I need a Scroll Lock key. –  percusse Sep 22 '12 at 18:43

The article Mail merge batch generating documents at Malaysian LaTeX User Group blog explains how to produce certificates with datatool package. They show two results one with a background figure (like Harish Kumar's example) but another with webomints package.

share|improve this answer

protected by Martin Scharrer Apr 17 '12 at 12:52

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.