Generador de certificados PDF usando PHP y XML

Hace un tiempo en un evento realizado en Ciudad Guayana, decidimos entregar el respectivo certificado a los participantes con algo sencillo a través de la web, hacer un programa que convirtiese el certificado en PDF, usamos PHP como motor de generador del certificado y XML como base de datos de los participantes.

Hay que tener en cuenta lo siguiente:

  • Se usa FPDF, se puede descargar de la página oficial.
  • Se usa una imagen de fondo de aproximadamente de 1000×800 px para adornar el certificado con algo alusivo al evento.
  • Cuando se ajustan los nombres y cédula al certificado, hay que tener mucha paciencia.

En primera instancia se crea un archivo XML, pudiera ser llamado base.xml, con el formato siguiente:




Nombre Apellido
12345678
nombreapellido@correo.com
Participante


Nombre Apellido
98765432

Colaborador


Posteriormente el archivo index.php con el siguiente contenido:

<?php 
if(isset($_POST['ced'])){
$base = "base.xml";
$xbase = simplexml_load_file($base);
foreach($xbase as $item) {
if( $_POST['ced'] == $item->ced ) {
header ('Location: http://sitio.org.ve/certificado.php?ced='.$item->ced);
} else
continue;
}
echo "

El número de cédula no existe.

";
} else
header('Content-type: text/html; charset=UTF-8');
?>


Certificados


Normas de uso.




  • El certificado será convertido a PDF.

  • Debes introducir tu número de cédula.

  • El formato de la cédula es solo número, Ej. 12345678

  • Otras normas.



<?php
echo "

Certificados

";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "
Cédula
";
echo "";
?>


Finalmente el archivo llamado certificado.php, con el siguiente contenido:

<?php

require('fpdf.php'); // Aquí se incluyen las funciones de FPDF

class PDF extends FPDF
{
function Header()
{
$base = "base.xml";
$xbase = simplexml_load_file($base);
foreach($xbase as $item) {
if( $_GET['ced'] == $item->ced ) {
$nombre = $item->name;
$calidad = $item->calidad;
} else
continue;
}
if ( empty($nombre) )
header ('Location: http://sitio.org.ve/');
$this->Image('imagen_de_fondo.png',5,5,270,205);
$this->SetFont('Arial','B',20);
$this->Ln(70);
$this->Cell(160,10,utf8_decode($nombre),0,0,'C');
$this->Ln(38);
$this->Cell(295,10,utf8_decode($calidad),0,0,'C');
}
}

$pdf=new PDF();
$pdf->AddPage(L, letter); // Tamaño y orientación del archivo PDF
$pdf->Output('certificado.pdf',I); // Nombre del archivo PDF

?>

Es un script muy sencillo y tiene sus detalles para mejorar, fue usado para generar los certificados en el pasado FLISoL 2010 en Ciudad Guayana organizado por GuayanaLUG.

Advertisements
This entry was posted in PHP, XML. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s