Usuario:ManuelRomero/php/smarty/pdf

De WikiEducator
Saltar a: navegación, buscar
Road Works.svg Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos.
Ver página de charlas.
Road Works.svg






PDF en php

Hay diferentes formas de generar un pdf desde php

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

Pdf dir.png

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

Pdf ej11.png

  • 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

Pdf ej2.png

  • Sigue aquí, o en la web oficial el resto de ejemplos