viernes, 11 de marzo de 2016

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.
 <?php
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.

1 comentarios:

  1. como hago si quiere meter un capo imagen para cada producto, previamente registradas e insertadas en la BD mysql

    ResponderEliminar