Portada » Lenguaje PHP » FPDF » Cómo generar un certificado dinámico en PHP

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.

Tamaño del fondo para cetificados con PHP

Requisitos para generar certificados con PHP

  1. Crear un archivo JPG según la siguiente dimensión (1123px por 794px) según la imagen propuesta líneas arriba.
  2. La imagen de fondo en la sección nombre debe ir vacío porque lo rellenaremos dinámicamente con PHP usando la biblioteca FPDF
  3. 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.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuarlo!

Promedio de puntuación 5 / 5. Recuento de votos: 1

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio
Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Privacidad