Para generar PDFs dinámicos en PHP
1ª Usando la extensión PHP PDF Lib que es de pago y requiere instalación (y si no eres el administrador de tu servidor hosting ya puedes esperar).
2º Utilizando la librería class.ezpdf.php y alguna de sus extensiones como class.backgroundpdf.php, que son gratuitas y no requieren instalación (solo hay que descargarse las librerías y subirlas al servidor).
La segunda opción tarda un poco mas de procesar los pdfs, pero es muchísimo más sencilla de utilizar y ponerla a punto. Para muestra un botón.
PDF dinámico con imagen de logo corporativo en el centro:
1
<?php
2 include('class.ezpdf.php');
3 include('class.backgroundpdf.php');
4
5 $pdf = new backgroundPDF('a4', 'portrait', 'image', array('img'=>'logo.jpg', 'width'=>560, 'height'=>420, 'xpos'=>0, 'ypos'=>200));
6 $pdf->selectFont('./fonts/Helvetica.afm');
7 $pdf->ezText('PDF generado dinámicamente', 50);
8 $pdf->ezText('', 12);
9 $pdf->ezText('Ejemplo de PDF utilizando una imagen como Fondo.', 12);
10 $pdf->ezNewPage();
11 $pdf->ezText('Pagina 2', 50);
12 $pdf->ezStream();
13 ?>
Edito: buscando me he dado cuenta que hay bastantes librerías más para generar pdf con php aquí os dejo una lista.
FPDF
TCPDF
FPDI
domPDF
ooohhhhhh primera entrada del señor DarkDhan. En primer lugar gracias a ti por querer colaborar. Me ha encantado el articulo, muy claro y muy interesante.
ResponderEliminarUn saludo crack
¡Está guapo! Lo que hace es crear el pdf con el new y luego meterle parámetros, no?
ResponderEliminarPersonalmente ahora no lo puedo probar y tengo una duda: Para hacer tablas y dar formato chulo a los textos, ¿cómo se hace? Se pone código html? (Creo que con ASP sí que se puede hacer así)
Saludos
Exacto, funciona como una clase de cualquier lenguaje orientado a objetos.
ResponderEliminarCreas una nueva instancia con el operador new y luego llamas a las funciones internas con la flecha ->
Si te soy sincero, no lo he explotado del todo, y solo he hecho un par de pruebas, pero si que se le pueden añadir tablas con la función: $pdf->ezTable($data);
Si quieres más información tienes el manual en la web principal:
http://www.ros.co.nz/pdf/
y este es el manual:
http://www.ros.co.nz/pdf/readme.pdf
saludos