Showing results for 
Show  only  | Search instead for 
Did you mean: 
Community Participant

Ideas for creating a Certificate of Completion

I understand the Certificate of Completion idea is currently under consideration, but was wondering if anyone has had success with using a free third party tool to generate a certificate, inside a Canvas course?  Our hope it to create a Module that students can only enter after completing a set of requirements, and inside the Module is an option to download a basic certificate that includes their name, credits, etc...  Any help/advice is greatly appreciated!  Thanks! 

14 Replies
Community Coach
Community Coach

Hi  @jenny_hopf 

I would love to see a native Certificate feature in Canvas, but I have been getting along just fine without one by doing exactly what you described - I create a certificate and upload it into a restricted module based on student scores or completion of activities. The students then download the Cert and add their name into a specified field.

This is not 100% secured, because students who have actually achieved the certificate, can then redistribute it.

There is an LTI tool available in the EduAppCenter that integrates nicely with Canvas, that can also help meet your need. You can check it out at Edu App Center 

You should consider making this a feature idea request to add support to Canvas building this. You can learn more at How does the feature idea process work? 


Community Team
Community Team

 @jenny_hopf , I preface this suggestion with the warning that I have not yet tried this approach, but you might get some ideas for issuing certificates from "Hacking" Canvas Using G Suite .

Community Champion

I would like a tool like that.  We currently do one of two options. One is what  @kmeeusen  suggests above and second involves going to our system where teachers sign up for workshops and having  them just do a short quiz there because it will generate a certificate.  I really don't like the two system option.  

I would want the LTI tool to read the user information so that it automatically adds their names and we could build the certificate with the number we are required to use for training that is acceptable for Continuing Ed towards certification renewal.  

Community Contributor

Hi  @jenny_hopf ‌,

We too had a need to have a certificate for certain courses, so I created a simple LTI tool that dynamically creates a PDF certificate with the student name, course name and completion date.

This tool requires a server with PHP and the FPDF library as well as setting up the tool in Canvas. The code will require some customization in order to adjust the text as necessary (based on how you want the certificate to look). The customization isn't anything too difficult, but you will want to read the examples and tutorials for FPDF.

If you are interested, I can share the code and the setup for the LTI in Canvas.


Community Champion


I would definitely be interested.   It would be a great improvement for us.  

I'd be interested as well!

Community Contributor

Hi tross‌ and  @kona ‌,

Here is the PHP code:



$pdf = new FPDF('L', 'in', 'Letter');

$pdf->SetMargins(0, 0);

$pdf->Image('images/cert.png', 0, 0, 11, 8.5);


$pdf->setFont('Times', 'B', 24);
$pdf->Cell(4.5, 1, date('F j, Y', time()), 0, 1, 'L');

$pdf->setFont('Times', 'B', 24);
$pdf->SetXY(5, 4.15);
$pdf->MultiCell(5, .75, $_POST['custom_user_name'], 0, 'C');

$pdf->setFont('Times', 'B', 18);
$pdf->SetXY(5, 5.9);
$pdf->MultiCell(5, .75, $_POST['custom_course_name'], 0, 'C');




The LTI is setup is as follows:

(Whatever you want)
Consumer keyShared Secret
(Doesn't matter; script doesn't use it)(Doesn't matter; script doesn't use it)
Launch URL
(Whatever the URL for the script is)
Custom Fields
(Whatever you want)

After that, you will be able to add it to a course module under the 'External Tools' option.

Thank you!

Hi akkaufmann‌ ,

I am really exited to work with FPDF concept of generating certificate , but could you please assist me with the file location where i need to upload this pdf file . & do i need to restart my server later? 

further to inform you i am using self hosted canvas lms on Azure VM .