Usuario:ManuelRomero/php/smarty/pdf
De WikiEducator
< Usuario:ManuelRomero | php
Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos. Ver página de charlas. |
PDF en php
Hay diferentes formas de generar un pdf desde php
- https://github.com/dompdf/dompdf
- https://html2pdf.fr/es/home
- Usar PDFLib https://www.pdflib.com/
- TCPDF https://tcpdf.org/
- Snnapy https://github.com/KnpLabs/snappy
- mpdf https://mpdf.github.io/
FPDF una clase de php
- FPDF es una clase escrita en PHP que permite generar un archivo PDF sin necesidad de utilizar PDFlib.
- Como indican en la propia página de FPDF No es tan rápido, pero si tiene muchas ventajas y sobre todo control total sobre la clase que es libre.
- FPDF es gratis y puede ser descargado desde la web oficial en su sección de descarga. El paquete de descarga contiene los archivos necesarios, junto con algunos tutoriales de cómo utilizarlo.
FPDF
- Accedemos a la web que está en castellano
- Aquí para ver las características
http://www.fpdf.org/?lang=es
Descarga
- Se descarga en nuestro proyecto y lo podemos usar direactamente
http://www.fpdf.org/es/download
- Descargamos la última version 1.81
(se descarga un fichero fpdf181.zip
- lo descomprimimos y nos crea la siguiente estructura de directorios
Usando pdf
- Creamos un proyecto donde instanciamos un objeto de la clase FPDF
- Siempre tendremos que añadir una página antes de escribir algo AddPage()
- Debemos establecer una fuente de letra SetFont(...)
- Podemos escribir (hay varias formas) escribir una celda con contenidoCell(..) escribir un textowrite(..) escribir varias celdasmultiCell(...)
- Generaremos el pdf save()'
- Nunca debe de haber ningún echo antes de generar la pagina
<?php require('fpdf.php'); $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'¡Primera página!'); $pdf->Output(); ?>
- Vemos que se produce una salida con caracteres no utf-8
- Para solucionar esta situación usamos la función de php 'utf8_decode'
<?php require('fpdf.php'); $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,utf8_decode('¡Primera página!')); $pdf->Output(); ?>
- Ahora vemos la salida con utf-8
- Sigue aquí, o en la web oficial el resto de ejemplos