INFORMACION:
¿Qué es FPDF? FPDF es una clase escrita en PHP que permite generar documentos PDF directamente desde PHP, es decir, sin usar la biblioteca PDFlib. La F de FPDF significa Free (gratis y libre): puede usted usarla para cualquier propósito y modificarla a su gusto para satisfacer sus necesidades. FPDF tiene otras ventajas: funciones de alto nivel. Esta es una lista de sus principales características: Elección de la unidad de medida, formato de página y márgenes Gestión de cabeceras y pies de página Salto de página automático Salto de línea y justificación del texto automáticos Admisión de imágenes (JPEG, PNG y GIF) Colores Enlaces Admisión de fuentes TrueType, Type1 y codificación Compresión de página FPDF no necesita de ninguna extensión para PHP (excepto Zlib para activar la compresión y GD para soporte a GIF) y funciona con PHP5. |
Lo primero que tenemos que hacer es bajar las librerías de fpdf
desde:
http://www.fpdf.org en el área
de descargas.
Cuando ya la tengamos solo tenemos que agregarlo a nuestro
proyecto en PHP.
Ahora incluimos el archivo fpdf.php en nuestro archivo con
“include o require” para poder hacer uso de sus funciones.
Recuerda que el código debe ser escrito sin etiquetas html sino te
puede resultar un error como el siguiente:
Fatal
error: Uncaught exception 'Exception' with message 'FPDF error: Some data has
already been output, can't send PDF file' in
C:\xampp\htdocs\CalendarioIT\fpdf\fpdf.php:271 Stack trace: #0
C:\xampp\htdocs\CalendarioIT\fpdf\fpdf.php(1063): FPDF->Error('Some data has
a...') #1 C:\xampp\htdocs\CalendarioIT\fpdf\fpdf.php(1012):
FPDF->_checkoutput() #2 C:\xampp\htdocs\CalendarioIT\index.php(29):
FPDF->Output('mipdf.pdf', 'd') #3 {main} thrown in
C:\xampp\htdocs\CalendarioIT\fpdf\fpdf.php on line 271
Algunos
métodos de utilidad:
$pdf = new FPDF('L','mm','letter'); //Parametros
de pagina
- - Primer parámetro orientación de la pagina.
- - Segundo parámetro unidad.
- - Tercer parámetro tamaño de página.
$pdf->SetFont('Arial',
'B', 16);//Fuente a utilizar
- - Primer parámetro fuente a utilizar.
- - Segundo parámetro estilo de fuente.
- - Tercer parámetro tamaño.
$pdf->Ln(10);//Salto
de linea
- - Salto de línea, parámetro cantidad a saltar.
$pdf->Cell(50,
10, 'Celda de 50 x 10', 1);//Crea una celda
- - Primer, segundo parámetro ancho alto de celda.
- - Texto contenido.
- - Grosor de línea.
$pdf->Output('mipdf.pdf','d');//Permite
que se cree el pdf
- - Abre la ventana de guarda automáticamente por el parametro “d”.
$pdf->Line(270, 30, 10, 30); // Traza una línea entre dos puntos.
- - Primer: Abscisa del primer punto.
- - Segundo: Ordenada del primer punto.
- - Tercero: Abscisa del segundo punto.
- - Cuarta: Ordenada del segundo punto.
Ahora
crearemos algo simple como práctica.
require_once 'fpdf/fpdf.php';
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial', 'B', 12);
$pdf->Line(180, 23, 10, 23);
$pdf->Cell(50, 22, "ORTR FPDF --- TABLA 1", 0);
$pdf->Ln(20);
$pdf->Cell(27, 5, 'ID', 1);
$pdf->Cell(27, 5, 'PRODUCTO', 1);
$pdf->Cell(27, 5, 'PRECIO ($)', 1);
$pdf->Cell(27, 5, 'CANTIDAD', 1);
$pdf->Ln(5);
$pdf->SetFont('Arial', '', 11);
for ($i = 0; $i <= 10; $i++) {
$pdf->Cell(27, 5, $i, 1);
$pdf->Cell(27, 5, "Producto $i",
1);
$pdf->Cell(27, 5, ($i * 58.2),
1);
$pdf->Cell(27, 5, $i * 2, 1);
$pdf->Ln(5);
}
$pdf->Ln(10);
$pdf->SetFont('Arial', 'B', 12);
$pdf->Line(180, 113, 10, 113);
$pdf->Cell(50, 22, "ORTR FPDF --- TABLA 2", 0);
$pdf->Ln(20);
$pdf->SetFillColor(175, 0, 0);
$pdf->SetTextColor(0, 0, 0);
$pdf->SetDrawColor(128, 0, 0);
//El true final nos permite dar el color a la celda
$pdf->Cell(27, 5, 'ID', 1, 0, 'L', true);
$pdf->Cell(27, 5, 'PRODUCTO', 1, 0, 'L', true);
$pdf->Cell(27, 5, 'PRECIO ($)', 1, 0, 'L', true);
$pdf->Cell(27, 5, 'CANTIDAD', 1, 0, 'L', true);
$pdf->Ln(5);
$pdf->SetFont('Arial', '', 11);
for ($i = 0; $i <= 10; $i++) {
$pdf->Cell(27, 5, $i, 1);
$pdf->Cell(27, 5,
"Producto $i", 1, false);
$pdf->Cell(27, 5, ($i * 58.2),
1);
$pdf->Cell(27, 5, $i * 2, 1);
$pdf->Ln(5);
}
$pdf->Ln(10);
$pdf->Output();
NOTA: Si
tienes problemas con las tildes o la ñ, prueba lo siguiente:
-
Utiliza la función de PHP “utf8_decode”.
-
EJ: Cell(20, 10,
utf8_decode('ESPAÑOL'), 1,);
Como podemos ver en este pequeño ejemplo de dos tablas
podemos usar variables para poder imprimir los datos que queramos. Así podemos
imprimir los datos de una BD para mostrarlos en un reporte y hacer procesos con
los datos con PHP y luego mostrarlos
Espero esta pequeño explicación les
sea de utilidad. Es muy probable que no encuentren lo que necesiten aquí así
que les recomiendo vean los tutoriales de la página oficial.
En estos tutoriales puedes ver un uso más
especializado y puede ser de grande ayuda a la hora de generar reportes o
cualquier otro documento en formato PDF.
como hago si quiere meter un capo imagen para cada producto, previamente registradas e insertadas en la BD mysql
ResponderEliminar