Qué+es+FP..

download Qué+es+FP..

of 17

Transcript of Qué+es+FP..

  • 8/2/2019 Qu+es+FP..

    1/17

    Qu es FPDF?

    FPDF es una clase escrita en PHP que permite generar documentos PDF directamentedesde PHP, es decir, sin usar la biblioteca PDFlib. La F de FPDF significa Free (gratis ylibre): puede usted usarla para cualquier propsito y modificarla a su gusto para satisfacersus necesidades.

    FPDF tiene otras ventajas: funciones de alto nivel. Esta es una lista de sus principalescaractersticas:

    Eleccin de la unidad de medida, formato de pgina y mrgenes Gestin de cabeceras y pies de pgina Salto de pgina automtico Salto de lnea y justificacin del texto automticos Admisin de imgenes (JPEG, PNG y GIF) Colores Enlaces Admisin de fuentes TrueType, Type1 y codificacin Compresin de pgina

    FPDF no necesita de ninguna extensin para PHP (excepto zlib para activar la compresiny GD para soporte a GIF) y funciona con PHP4 ( 4.3.10) y PHP5.

    Lostutorialesle permitirn empezar rpidamente a usar FPDF. La documentacin completa(on line) se encuentraaquy el rea de descarga,aqu. Se recomienda encarecidamente quelea lasFAQ(o PMF: preguntas ms frecuentes), que listan las preguntas y problemas mscomunes (especialmente los relacionados con los navegadores).

    Existe una seccin descriptsque incluye algunas extensiones tiles.

    Qu idiomas puedo usar?La clase genera documentos en muchos otros idiomas aparte de los europeos occidentales:europeo central, cirloco, griego, bltico ytailands, si se dispone de fuentes TrueType oType1 con el conjunto de caracteres adecuado.El chinoyel japonstambin estnadmitidos.

    UTF-8tambin est disponible.

    http://www.fpdf.org/es/tutorial/index.phphttp://www.fpdf.org/es/tutorial/index.phphttp://www.fpdf.org/es/tutorial/index.phphttp://www.fpdf.org/es/doc/index.phphttp://www.fpdf.org/es/doc/index.phphttp://www.fpdf.org/es/doc/index.phphttp://www.fpdf.org/es/download.phphttp://www.fpdf.org/es/download.phphttp://www.fpdf.org/es/download.phphttp://www.fpdf.org/es/FAQ.phphttp://www.fpdf.org/es/FAQ.phphttp://www.fpdf.org/es/FAQ.phphttp://www.fpdf.org/es/script/index.phphttp://www.fpdf.org/es/script/index.phphttp://www.fpdf.org/es/script/index.phphttp://www.fpdf.org/phorum/read.php?f=1&i=5090&t=4996#5090http://www.fpdf.org/phorum/read.php?f=1&i=5090&t=4996#5090http://www.fpdf.org/phorum/read.php?f=1&i=5090&t=4996#5090http://www.fpdf.org/phorum/read.php?f=1&i=5142&t=5142http://www.fpdf.org/phorum/read.php?f=1&i=5142&t=5142http://www.fpdf.org/phorum/read.php?f=1&i=5142&t=5142http://www.fpdf.org/phorum/read.php?f=1&i=7977&t=7977http://www.fpdf.org/phorum/read.php?f=1&i=7977&t=7977http://www.fpdf.org/phorum/read.php?f=1&i=7977&t=7977http://www.fpdf.org/en/script/script92.phphttp://www.fpdf.org/en/script/script92.phphttp://www.fpdf.org/en/script/script92.phphttp://www.fpdf.org/phorum/read.php?f=1&i=7977&t=7977http://www.fpdf.org/phorum/read.php?f=1&i=5142&t=5142http://www.fpdf.org/phorum/read.php?f=1&i=5090&t=4996#5090http://www.fpdf.org/es/script/index.phphttp://www.fpdf.org/es/FAQ.phphttp://www.fpdf.org/es/download.phphttp://www.fpdf.org/es/doc/index.phphttp://www.fpdf.org/es/tutorial/index.php
  • 8/2/2019 Qu+es+FP..

    2/17

    Y qu hay de la eficiencia?

    Como es lgico, la velocidad de generacin de un documento es menor que con PDFlib.Sin embargo, la desventaja en cuanto a rendimiento es muy razonable y se adeca a la

    mayora de los casos, a no ser que sus documentos vayan a ser especialmente complejos oextensos.

    Para cualquier observacin, pregunta o problema, no dude en dejar un mensaje en elforo.

    Tambin puedeescribirmea m (in French or English please ;-)).

    REPORTES PDF CON LA CLASE FPDF, PHP Y MYSQL

    Qu es FPDF?

    FPDF es una clase escrita en PHP que permite generar documentos PDF directamentedesde PHP, es decir, sin usar la biblioteca PDFlib. La F de FPDF significa Free (gratis ylibre): puede usted usarla para cualquier propsito y modificarla a su gusto para satisfacersus necesidades.

    FPDF tiene otras ventajas: funciones de alto nivel. Esta es una lista de sus principalescaractersticas:

    * Eleccin de la unidad de medida, formato de pgina y mrgenes* Gestin de cabeceras y pies de pgina* Salto de pgina automtico* Salto de lnea y justificacin del texto automticos* Admisin de imgenes (JPEG, PNG y GIF)* Colores* Enlaces* Admisin de fuentes TrueType, Type1 y codificacin* Compresin de pgina

    La clase se puede descargar en la pgina oficial http://www.fpdf.org/

    Una vez que la incluyas dentro de tu carpeta de proyectos web, puedes crear un pdf como lodesees.. Aqu mi ejemplo particular, ara adaptarlo puedes configurar tu clave usuario, y

    base de datos a usar, modificas las consultas a conveniencia, en este caso hay dos tablas dosfunciones y dos consultas..

    SetFillColor(62,102,60); // fondo de celda$this->SetTextColor(255); // color del texto$this->SetDrawColor(0,0,0); // color de linea$this->SetLineWidth(.3); // ancho de linea

    http://www.fpdf.org/phorum/http://www.fpdf.org/phorum/http://www.fpdf.org/phorum/mailto:[email protected]?subject=FPDFmailto:[email protected]?subject=FPDFmailto:[email protected]?subject=FPDFmailto:[email protected]?subject=FPDFhttp://www.fpdf.org/phorum/
  • 8/2/2019 Qu+es+FP..

    3/17

    $this->SetFont('Arial','', 7);$w=array(20,100,15,10,15,15,15); // en este arreglo definiremos el ancho de cada columnafor($i=0;$iCell($w[$i],4,$header[$i],1,0,'C',1); //por cada encabezado existente, crea unacelda$this->Ln();

    //Colores, ancho de lnea y fuente en negrita de CONTENIDO$this->SetFillColor(244,244,244); //$this->SetTextColor(0);$this->SetFont('');//Datos$fill=false; // variable para alternar rellenoforeach($data as $row){$columna = explode(";",$row); //separar los datos en posiciones de arreglo$this->Cell($w[0],6,$columna[0],'LR',0,'L',$fill); //celda(ancho,alto,salto delinea,border,alineacion,relleno)$this->Cell($w[1],6,$columna[1],'LR',0,'L',$fill);$this->Cell($w[2],6,$columna[2],'LR',0,'L',$fill);$this->Cell($w[3],6,$columna[3],'LR',0,'L',$fill);$this->Cell($w[4],6,$columna[4],'LR',0,'L',$fill);$this->Cell($w[5],6,$columna[5],'LR',0,'L',$fill);$this->Cell($w[6],6,$columna[6],'LR',0,'L',$fill);$this->Ln();$fill=!$fill; //se alterna el valor del boolean $fill para cambiar relleno}$this->Cell(array_sum($w),0,'','T');}function tabla1($header1,$data1){//Colores, ancho de lnea y fuente en negrita de CABECERA$this->SetFillColor(62,102,60); // fondo de celda$this->SetTextColor(255); // color del texto$this->SetDrawColor(0,0,0); // color de linea$this->SetLineWidth(.3); // ancho de linea$this->SetFont('Arial','', 6); // negrita$w=array(70); // en este arreglo definiremos el ancho de cada columnafor($i=0;$iCell($w[$i],4,$header1[$i],1,0,'C',1); //por cada encabezado existente, crea unacelda$this->Ln();//Colores, ancho de lnea y fuente en negrita de CONTENIDO$this->SetFillColor(244,244,244); //$this->SetTextColor(0);$this->SetFont('');//Datos$fill=false; // variable para alternar rellenoforeach($data1 as $row){

  • 8/2/2019 Qu+es+FP..

    4/17

    $columna = explode(";",$row); //separar los datos en posiciones de arreglo

    // validacin a mano para que respete el limite de la celda

    if ($columna[0]>$w[0]){

    $this->Cell($w[0],20,$columna[0],'LR',1,'L',$fill); //celda(ancho,alto,salto delinea,border,alineacion,relleno)}else{$this->Cell($w[0],5,substr($columna[0],0, 45),'LR',1,'L',$fill);$this->Cell($w[0],5,substr($columna[0],45,53),'LR',1,'L',$fill);$this->Cell($w[0],5,substr($columna[0],99,150),'LR',1,'L',$fill);$this->Ln(0);}$fill=!$fill; //se alterna el valor del boolean $fill para cambiar relleno}$this->Cell(array_sum($w),0,'','T');}function Footer(){//Pie de pgina$this->SetY(-15);$this->SetFont('Arial','I',10);$this->SetTextColor(128);$this->Cell(0,10,'Pagina '.$this->PageNo().' de {nb}',0,0,'C'); // el parametro {nb} esgenerado por una funcion llamada AliasNbPages}}$pdf = new PDF();$pdf->AliasNbPages(); //funcion que calcula el numero de paginas$sql1 = "SELECT informacion FROM empresa";$modificar11 = mysql_query($sql1, $conex) or die(mysql_error());$head1 = array("VENEZOLANA DE RIEGO, C.A"); // cabecera$i=0;while ($fila=mysql_fetch_array($modificar11)){ //llenar variable dat con los campos deuna fila unidos por ;$dat1[$i]=$fila[0]; //concatenar para luego ser separado por explode()$i++;}$sql = "SELECT codigo, descripcion, unidad, cantidad, precio_uni, descuento, total FROMorden_articulos where orden='10733'";$modificar1 = mysql_query($sql, $conex) or die(mysql_error());$head = array("Codigo","Descripcion","Unidad","Cant","Precio","Dcto","Total"); //cabecera$i=0;while ($fila=mysql_fetch_array($modificar1)){ //llenar variable dat con los campos de unafila unidos por ;

  • 8/2/2019 Qu+es+FP..

    5/17

    $dat[$i]=$fila[0].";".($fila[1]).";".$fila[2].";".$fila[3].";".$fila[4].";".$fila[5].";".$fila[6];//concatenar para luego ser separado por explode()$i++;}$pdf->AddPage(); //crear documento

    $pdf->Image('images/logo.jpg',10,8,30,30); //aadir imagen$pdf->Cell(50);$pdf->SetFont('Arial','',12);$pdf->Cell(120,15,"ORDEN DE COMPRA",0,0,'C');$pdf->Ln(35);$pdf->SetFont('Arial','',12);$pdf->Ln(10);$pdf->tabla1($head1,$dat1);$pdf->Ln(30);$pdf->tabla($head,$dat);$pdf->Output(); //el resto es historia?>

    http://4.bp.blogspot.com/-AmrCbOexflI/Timpz4t2k8I/AAAAAAAAAHE/bR7gR3ewdV0/s1600/Pantallazo-1.png
  • 8/2/2019 Qu+es+FP..

    6/17

    En el da de hoy quiero ensearles algo muy sencillo pero til que podemos hacer en PHP yes crear archivos PDF. Para ello utilizaremos la clase FPDF, que pueden descargar desdeaqu.

    El archivo que vamos a crear tiene que estar en la misma carpeta de la clase (fpdf.php)

    Bien, lo primero que vamos hacer es llamar la clase usando require:

    require(fpdf.php);

    Creamos el objeto FPDF

    $pdf=new FPDF();

    De esta manera se usan los valores por defecto que son tamao a4 alargado y la unidad demedida es el milmetro. Para este tutorial usaremos los valores por defecto pero paracambiar el formato lo hacemos de la siguiente manera:

    $pdf=new FPDF(P,cm,Letter); // Aqu estamos usando cm como unidad de medida yformato carta.

    Podemos usar otros valores de medida como:pt: puntomm: milmetrocm: centmetroin: pulgada

    Y podemos usar los siguientes formatos:

    A3A4A5LetterLegal

    Pueden encontrar informacin ms detalladaaqu.

    Tenemos que crear una pagina y lo hacemos de la siguiente manera:

    $pdf->AddPage();

    Por defecto el texto aparecer en la esquina superior izquierda y y la margen ser de 1 cm,estos valores los podemos modificar usando SetMargins() pero por hoy no explicare comose usa.

    A esta pgina para darle las caractersticas del texto usamos SetFont() es obligatorioinvocar este mtodo antes de imprimir texto y se usara de la siguiente manera:

    http://fpdf.org/es/download.phphttp://fpdf.org/es/download.phphttp://fpdf.org/es/doc/fpdf.htmhttp://fpdf.org/es/doc/fpdf.htmhttp://fpdf.org/es/doc/fpdf.htmhttp://fpdf.org/es/doc/fpdf.htmhttp://fpdf.org/es/download.php
  • 8/2/2019 Qu+es+FP..

    7/17

    $pdf->SetFont(Arial,B,18);

    Como ven lo que hacemos es usar Arial como fuente, negrita (B) y el tamao del texto ser18.

    Nota: No usar comillas para el tamao.

    Podramos haber especificado itlica con I, subrayado con U fuente Times, Courier,Symbol y ZapfDingbats. Pueden encontrar ms informacinaqude como usar SetFont.

    Listo ahora podemos imprimir el texto que queramos usando Cell()

    $pdf->Cell(40,10,Hola, gente de Muriba!);

    Lo que hacemos es crear una celda, especificando sus dimensiones (40,10 mm) yseguidamente el texto que se quiere imprimir en este caso Hola, gente de Muriba!

    Por ultimo cerramos con Output()

    $pdf->Output();

    Con Output podemos darle el nombre al pdf, si no lo hacemos por defecto creara doc.pdf, siqueremos establecer un nombre al pdf lo podemos hacer de la siguiente manera:

    $pdf->Output(muriba.pdf, I); // Usamos I para enviar el fichero al navegador deforma que se usa la extensin (plug in) si est disponible.

    Output tiene ms opciones, pero no las explicare hoy, si desean informacin de lasfunciones de Output pueden encontrarla aqu.

    El cdigo completo seria:

    AddPage();

    $pdf->SetFont('Arial','B',18);

    $pdf->Cell(40,10,'Hola, gente de Muriba!');

    $pdf->Output("muriba.pdf", "I");

    ?>

    Es posible crear un archivo pdf con php. Existen varias clases para realizar esa tarea pero

    en este tutorial se utiliza fpdf.

    fpdf se puede descargar gratuitamente desde:

    http://www.fpdf.org

    La clase fpdf se integra por el archivo:

    http://fpdf.org/es/doc/setfont.htmhttp://fpdf.org/es/doc/setfont.htmhttp://fpdf.org/es/doc/setfont.htmhttp://www.fpdf.org/http://www.fpdf.org/http://www.fpdf.org/http://fpdf.org/es/doc/setfont.htm
  • 8/2/2019 Qu+es+FP..

    8/17

    fpdf.php

    Adicionalmente hace uso de los archivos:

    courier.php

    helveticabi.phphelveticab.phphelveticai.phphelvetica.phpsymbol.phptimesbi.phptimesb.phptimesi.phptimes.phpzapfdingbats.php

    Estos archivos se almacenan en la carpeta / directorio "font" y su funcin es proporcionarletras / fuentes para crear los archivos pdf.

    Para instalar fpfd solamente basta subir al servidor el archivo fpdf.php y la carpeta con lasfuentes.

    El archivo fpdf.php se puede subir al directorio raz o a un directorio propiol.

  • 8/2/2019 Qu+es+FP..

    9/17

    El archivo ejemplo-01.php incluye est cdigo que crea un pdf muy sencillo:

    Este es el archivo pdf resultado de este cdigo.

  • 8/2/2019 Qu+es+FP..

    10/17

    Descargar pdf

    A continuacin se explica lnea por lnea el cdigo anterior. En color se seala lo que NODEBE MODIFICARSE pues son las funciones predefinidas de FPDF.

    http://www.alaingarcia.net/weird/i/fpdf-01.pdfhttp://www.alaingarcia.net/weird/i/fpdf-01.pdfhttp://www.alaingarcia.net/weird/i/fpdf-01.pdf
  • 8/2/2019 Qu+es+FP..

    11/17

    require('./fpdf/fpdf.php');

    Importa la clase. Debe respetarse la ruta correcta en donde se localiza fpdf. En este caso enel directorio raz se cre el archivo ejemplo-01.php. Dentro del directorio raz se cre lacarpeta fpdf y ah se guard el archivo fpdf.php.

    $pdf=new FPDF();

    Crea un nuevo pdf. FPDF() es una funcin predefinida de fpdf. El nuevo pdf se almacenaren la variable $pdf, el nombre de esta variable puede cambiarse pero a lo largo del cdigodeber usarse el mismo valor para evitar errores.

    $pdf->AddPage();

    Los archivos pdf tienen pginas, pueden tener una o varias. Con AddPage() se agrega unapgina al archivo pdf que se crear.

    $pdf->SetFont('Arial','B',16);

    Define el tipo, estilo y tamao de fuente / letra a utilizar.

    La funcin SetFont usa las variables tipo, estilo y tamao: SetFont(tipo,estilo,tamao).

    En este caso el tipo de letra a usar es Arial. En la carpeta "fonts" estn las fuentesdisponibles. Slo se pueden usar fuentes que existan en la carpeta "fonts". Es posible crearms fuentes pero se debe seguir el procedimiento determinado para crear la fuente pues nobasta con subir al servidor un archivo True Type.

    Los estilos disponibles son normal, negritas e itlicas. En este ejemplo se us el estilonegritas. Para usar texto normal se debe escribir '', para itlicas se debe escribir 'I'.

    En este ejemplo se us el tamao de 16 puntos.

    $pdf->Cell(40,10,'Hello World!');

    Crea una celda / cuadro con la frase "Hello World".

    En este ejemplo la funcin Cell usa las variables ancho de la celda, alto de la celda y texto a

    mostrar: Cell(ancho,alto,texto). Los valores del ancho y alto de la celda se definen poromisin en milmetros.

    fpdf divide a la hoja en celdas / cuadro para desplegar la informacin en el archivo pdf .

    Con este grfico pretende aclarar las cosas. La hoja se divide en celdas:

  • 8/2/2019 Qu+es+FP..

    12/17

    Y en cada celda se puede aadir contenido.

    $pdf->Output();

    Genera el archivo pdf.

  • 8/2/2019 Qu+es+FP..

    13/17

    Se puede insertar una imagen al pdf. Para ello se usa la funcin: Image()

    El archivo ejemplo-02.php incluye est cdigo que inserta una imagen al pdf :

    Al cdigo del ejemplo anterior se le aadieron las lneas:

    $pdf->Image('logo.jpg',20,8);

    y

    $pdf->Ln(50);

    A continuacin se explica lnea por lnea el cdigo anterior. En color se seala lo que NODEBE MODIFICARSE pues son las funciones predefinidas de FPDF.

    $pdf->Image('logo.jpg',20,8);

    Agrega una imagen al pdf.

    En este ejemplo la funcin Image usa las variables archivo, posicin en el plano x yposicin en el plano y: Cell(archivo,posicion_en_x,posicion_en_y). Los valores de laposicin en el plano x y en el plano y se definen por omisin en milmetros.

  • 8/2/2019 Qu+es+FP..

    14/17

    fpdf puede importar archivos jpg y png solamente.

    El valor de archivo debe incluir la ruta correcta hacia la imagen. En este caso la imagen seencuentra en el mismo directorio que el archivo ejemplo-02.php

    $pdf->Ln(50);

    Inserta un salto de lnea.

    En este ejemplo la funcin Ln usa la variable tamao del salto de lnea:Ln(tamao_salto_linea). Los valores del tamao del salto de lnea se definen por omisinen milmetros.

    Este es el archivo pdf resultado de este cdigo:

  • 8/2/2019 Qu+es+FP..

    15/17

    Descargar pdf

    Usando la capacidad de fpdf para dividir la hoja en celdas se pueden crear diseos mselaborados como este archivo pdf:

    http://www.alaingarcia.net/weird/i/fpdf-02.pdfhttp://www.alaingarcia.net/weird/i/fpdf-02.pdfhttp://www.alaingarcia.net/weird/i/fpdf-02.pdf
  • 8/2/2019 Qu+es+FP..

    16/17

    Descargar pdf

    http://www.alaingarcia.net/weird/i/fpdf-03.pdfhttp://www.alaingarcia.net/weird/i/fpdf-03.pdfhttp://www.alaingarcia.net/weird/i/fpdf-03.pdf
  • 8/2/2019 Qu+es+FP..

    17/17

    fpdf incluye ms funciones que facilitan la tarea de crear archivos pdf. Es posible cambiarel color de los textos, de las celdas, agregar encabezados, pies de pgina y numeracin atodos las hojas automticamente.

    Ms an fpdf puede aprovechar los recursos de php para, por ejemplo, generar

    automticamente un reporte con los datos almacenados en una base de datos mysql yguardarlo en un archivo pdf.

    http://www.alaingarcia.net/weird/i/fpdf-03.pdfhttp://www.alaingarcia.net/weird/i/fpdf-03.pdfhttp://www.alaingarcia.net/weird/i/fpdf-03.pdfhttp://www.alaingarcia.net/weird/i/fpdf-03.pdfhttp://www.alaingarcia.net/weird/i/fpdf-03.pdfhttp://www.alaingarcia.net/weird/i/fpdf-03.pdf