As you are probably aware, this site is called VitoshAcademy. As far as the site is called this way, I have tought of finding a way to issue automatic certificates with PDF and PHP. And this is exactly what I am going to write about now. In PHP, there is a library called fpdf.php, which handles pretty well PDFs. And is able to generate a pdf file looking like this:
It is not very beautiful, but it is PDF, generated with PHP. 🙂 And it even has some links and some maths calculations, which could be useful in some strange situation. 🙂
So, what did I do to achieve this outstanding result? Pretty much, I have said that I require(“fpdf/fpdf.php”); at the beginning of the code, and later I have lost about 30 minutes to set the footer, the header, the cells and the links. I am aware that the colors are somehow strange but I am really not quite fond of beautiful design. So, this is what you get when you run the code:
The certificate is automatically saved in the same directory as your php file. Feel free to change it as much as you want. Here comes the code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
<html> <head> <title>Make me a certificate, VitoshAcademy.com!</title> </head> <body> <?php require("fpdf/fpdf.php"); $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont("Helvetica", "B", 22); $pdf->Cell(0,20,"Certificate","B",1,"C"); $pdf->Ln(); $pdf->SetFont("Helvetica", "B", 16); $pdf->Cell(0,20,"OF PHP Knowledge","I",0,"C"); $pdf->Ln(); $pdf->Cell(0,20,"Issued to VitoshAcademy.Com","I",0,"C"); $pdf->Ln(); $pdf->Cell(0,20,"By VitoshAcademy.Com","I",0,"C"); $pdf->Ln(); $pdf->SetFont("Helvetica", "B", 11); $pdf->SetDrawColor(255, 0, 255); $pdf->SetLineWidth(0.1); $pdf->SetFillColor(192, 192, 192); $pdf->SetTextColor(255, 0, 0); $pdf->Cell(25, 5, "N" , "LTR", 0, "C", 1); $pdf->Cell(25.1, 5, "N * 11", "LTR", 0, "C", 1); $pdf->Cell(25.2, 5, "N * 13", "LTR", 0, "C", 1); $pdf->Cell(25.3, 5, "N * 17", "LTR", 0, "C", 1); $pdf->Cell(25.4, 5, "N * 19", "LTR", 0, "C", 1); $pdf->Cell(25.5, 5, "N * 23", "LTR", 0, "C", 1); $pdf->Cell(25.6, 5, "N * 31", "LTR", 0, "C", 1); $pdf->Ln(); $bool_draw = True; for($w=7; $w<=50; $w=$w+7) { if ($bool_draw == True) { $pdf->SetFillColor(105,110,115); $pdf->SetTextColor(1,300,1); $bool_draw = False; } else { $bool_draw = True; $pdf->SetFillColor(1,300,1); $pdf->SetTextColor(105,110,115); } $pdf->SetLineWidth(0.05); $pdf->SetTextColor(255,255,255); $wb = $w; $pdf->Cell(25, 5, $w, "LR", 0, "C",1); $pdf->Cell(25.1, 5, $wb*11, "LR", 0, "C", 1); $pdf->Cell(25.2, 5, $wb*13, "LR", 0, "C", 1); $pdf->Cell(25.3, 5, $wb*17, "LR", 0, "C", 1); $pdf->Cell(25.4, 5, $wb*19, "LR", 0, "C", 1); $pdf->Cell(25.5, 5, $wb*23, "LR", 0, "C", 1); $pdf->Cell(25.6, 5, $wb*31, "LR", 0, "C", 1); $pdf->Ln(); } $pdf->Ln(); $pdf->Ln(); $pdf->SetFillColor(160,20,123); $pdf->SetTextColor(1,300,1); $pdf->Write(10, "Go to VitoshAcademy", "https://www.vitoshacademy.com"); $pdf->Ln(); $pdf->SetFillColor(123,440,120); $pdf->SetTextColor(100,0,0); $pdf->Write(10, "More PHP here", "https://www.vitoshacademy.com/?s=php&submit=Go"); $pdf->SetY(-40); $pdf->Cell(0,10,"Anything is possible. In any color.","T","1","C"); $pdf->Output("certificate.pdf"); echo "Your certificate is generated!"; ?> </body> </html> |
Here is the code in GitHub.Com.
Enjoy it! ♣