Crear PDF con PHP y FPDF

En este artículo vamos a ver como crear pdf con PHP, usando la librería FPDF, la misma está escrita totalmente en PHP lo que nos libera de usar una librería externa como PDFlib. Para saber más sobre FPDF haz click aquí.

Crear un PDF en PHP es simple, lo primero que debemos hacer es bajarnos la clase desde aqui, luego debemos copiarla a nuestro directorio de trabajo y estamos listos para empezar.

Veamos un ejemplo:

El código anterior es simple y claro, incluimos la clase mediante “require”, creamos una instancia de la misma, agregamos una página con “AddPage”, seteamos la fuente a usar, definimos un rectángulo donde aparecerá el texto y finalmente creamos el pdf con “output”.

Ahora que conocemos las funciones básicas, vamos a hacer algo mas avanzado, supongamos que queremos imprimir 100 recibos donde queremos cambiar el número de recibo automáticamente.

Aquí es donde entra en juego la colección de clases de FPDI, que permite leer documentos PDF y tratarlos como templates desde FPDF, para bajarte FPDI puedes hacerlo desde aqui.

Siguiendo con la situación planteada:

El código anterior genera un documento llamado recibos.pdf de 100 páginas, una por recibo (por favor, leer los comentarios en el código).

Es fácil darse cuenta que estas librerías son súmamente útiles a la hora de trabajar con documentos PDF, basta con leer la documentación oficial para comprender las posibilidades que nos ofrecen.

Tal vez te gusten…

Más artículos similares…

12 Comentarios. Dejar nuevo

  • de gran ayuda muchas gracias!

  • Por nada, a las ordenes.

  • Mil gracias

  • Definitivamente un buen articulo: facil y directo al grano
    🙂
    GRACIASSSSS!!!!!!

  • Estimado Amigo,
    El primer ejemplo sale correctamente.
    En el ejercicio de los recibos me sale el siguiente mensaje:
    FPDF error: Cannot open recibo_template.pdf !
    Muy amable por su ayuda.
    Saludos cordiales
    Richard

  • Richard, en el segundo ejemplo asumimos que el archivo recibo_template.pdf ya existe, dado que partimos de un recibo pre armado al cual queremos cambiar el número nada más.
    Asi que te recomiendo que armes un archivo PDF (puede estar vacío) y lo renombres a recibo_template.pdf para que te funcione el ejemplo.

    saludos, Juan.

  • Hola que tal use tu ejemplo, y pareciera que todo funciona correctamente, pero no me descarga el archivo, aun que si lo crea. me sale el siguiente error:
    Internal Server Error

    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Podrias orientarme a que se debe.

  • quiero hacer una constancia de estudio y que lo imprima en php de fpdf
    AddPage();

    /* seleccionamos el tipo, estilo y tamaño de la letra a utilizar */

    $pdf->SetFont(‘Helvetica’, ‘B’, 14);

    $pdf->Write (7,”HOLA ESTOY GENERANDO MI PRIMER PDF“,”http://AprendeAProgramarEnPHPya.com/blog”);

    $pdf->Ln();
    $pdf->Write (7,$_POST[‘aquiencorresponda’]);

    $pdf->Ln(); //salto de linea
    $pdf->Write (7,$_POST[‘nombre’]);

    $pdf->Ln(); //salto de linea

    $pdf->Write (7,$_POST[‘atentamente’]);

    $pdf->Ln(); //salto de linea

    $pdf->Write (7,$_POST[‘dependencia’]);

    $pdf->Ln(); //salto de linea
    $pdf->Write(60,7,$_POST[‘atentamente’],1,0,’C’);

    $pdf->Ln(15);//ahora salta 15 lineas

    $pdf->SetTextColor(’255′,’0′,’0′);//para imprimir en rojo

    $pdf->Multicell(190,7,$_POST[‘tel’].”\n esta es la prueba del multicell”,1,’R’);

    $pdf->Line(0,160,300,160);//impresión de linea

    $pdf->Output(“prueba.pdf”,’F’);

    echo “window.open(‘prueba.pdf’,’_self’,”);”;//para ver el archivo pdf generado

    exit;

    ?>
    me marca error Parse error: syntax error, unexpected T_STRING in C:\AppServ\www\Pruebas\fpdf\generador.php on line 21

  • Quisiera saber como pasar la cantidad de paginas a una variable

  • Hola Angel, en el ejemplo usamos un bucle for con una variable $i que nos dice la cantidad de paginas, ya que en cada iteración agregamos una nueva.
    Pero si salimos del ejemplo tenemos disponible el método $pdf->PageNo() que nos retorna la página actual del documento creado.
    Espero que te sirva, saludos.

  • angel170586
    abril 5, 2016 7:14 pm

    Buen Día Lic. Benitez,

    el caso que tengo es el siguiente:
    cree un documento en php usando la librería fpdf y la incluí en mi pagina, después modifique mi pagina para que sea adaptativa(responsive) con bootstrap. Para ahorrarme la tarea de crear una aplicación, con android studio genere un apk que llame a mi pagina, pero al intentar descargar desde el apk no funciona el link al archivo php que genera el pdf.

    espero que me pueda ayudar, gracias de antemano.

    Angel Laura.

  • Hola Buenas tardes muy interesante y sobretodo muy util este post, solo tengo una consulta estoy tratando de varias paginas con datos jalados de mysql, pero tengo algunas clases de la libreria fpdf que no funcionan, todo lo demas funciona muy bien cuando comento dichas clases, espero me pueda ayudar. Muchas gracias de antemano.

    Ejem de clases

        function ImprimirTexto2($texto){
            $txt = $texto;
            //Se imprime
            $this->MultiCell(0,5,$txt);
        }

  • hola me gustaria saber si se puede hacer una cell resposive por que yo estoy haciendo un pdf que el texto es de 20 pero lo tengo que poner en una cel de 10  no se si se puede hacer responcive o algo asi?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Rellena este campo
Rellena este campo
Por favor, introduce una dirección de correo válida.
Necesita estar de acuerdo con los términos para continuar

Resolver : *
15 − 10 =


Menú