Cómo generar un certificado dinámico en PHP
Cómo generar un certificado dinámico en PHP. Veremos dos ejemplos completos y he creado este script simple que se pueda ejecutar usando PHP y MySQL con FPDF.
Cómo generar un certificado dinámico en PHP
Aprenderemos a crearlos de una manera sencilla con 2 super ejemplos.
En estos 2 pequeños ejemplos usaremos un archivo JPG de muestra (fondo), agregaremos un nombre de manera dinámica e imprimiremos como PDF en resultado final.
Requisitos para generar certificados con PHP
- Crear un archivo JPG según la siguiente dimensión (1123px por 794px) según la imagen propuesta líneas arriba.
- La imagen de fondo en la sección nombre debe ir vacío porque lo rellenaremos dinámicamente con PHP usando la biblioteca FPDF
- Usaremos la biblioteca PDF PHP
Para que el script funcione es necesario descargar la última versión de FPDF desde esta dirección URL: http://www.fpdf.org/en/download.php
Estructura y formas de crear certificados dinámicos con PHP
Vamos a crear dos ejemplos con pequeños pasos para una rápida implementación.
Primera forma: Generando solo un certificado
Básicamente crearemos un script PHP para generar un solo certificado. Además, crearemos un archivo llamado básico_un_certificado.php
<?php
//Incluimos a libreria para generar el PDF
require('../fpdf/fpdf.php');
function AddText($pdf, $text, $x, $y, $a, $f, $t, $s, $r, $g, $b) {
$pdf->SetFont($f,$t,$s);
$pdf->SetXY($x,$y);
$pdf->SetTextColor($r,$g,$b);
$pdf->Cell(0,10,$text,0,0,$a);
}
// Creamos la hoja A4 para el cetificado
$pdf = new FPDF('L','mm','A4');
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->SetCreator('Milor');
// Agregamos la imagen de fondo a PDF
$pdf->Image('../img/fondo.jpg',0,0,0);
//Agregamos nombre a los certificados dinamicos
AddText($pdf,ucwords('Dario Garza'), 0,80, 'C', 'Helvetica','B',30,3,84,156);
$pdf->Output();
?>
Segunda forma: Múltiples certificados
Aquí veremos la generación de varios certificados, es decir crearemos varios certificados según la cantidad de alumnos. Por lo tanto, crearemos un archivo llamado multiples_certificados.php
<?php
//Incluimos a libreria para generar el PDF
require('../fpdf/fpdf.php');
function AddText($pdf, $text, $x, $y, $a, $f, $t, $s, $r, $g, $b) {
$pdf->SetFont($f,$t,$s);
$pdf->SetXY($x,$y);
$pdf->SetTextColor($r,$g,$b);
$pdf->Cell(0,10,$text,0,0,$a);
}
// Creamos la hoja A4 para el cetificado
$pdf = new FPDF('L','mm','A4');
function CreatePage($pdf,$name)
{
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->SetCreator('David Morgan');
// Agregamos la imagen de fondo a PDF
$pdf->Image('../img/fondo.jpg',0,0,0);
//Agregamos nombre a los certificados dinamicos
AddText($pdf,ucwords($name), 0,80, 'C', 'Helvetica','B',30,3,84,156);
}
CreatePage($pdf,'Miguel Saavedra Gomez');
CreatePage($pdf,'Luisa Basadre Bustios');
CreatePage($pdf,'Manuel Garcia Fizza');
CreatePage($pdf,'Carlos Bazan Moreno');
$pdf->Output();
?>
Nota:
Estos ejemplos son básicos y podemos agregarles en otra página un formulario en envié un nombre o varios nombres para que genere certificados dinámicos. Además, también pueden recuperar lista de alumnos desde una base de datos como ser MySQL.
En otros artículos hemos visto cómo manejar formularios con los métodos POST y GET
Ya les dejo a su criterio como personalizar su script para que sea más dinámico y cumpla con sus expectativas en sus proyectos web.