Diferencia entre revisiones de «Usuario:ManuelRomero/PHP/pdf»

De WikiEducator
Saltar a: navegación, buscar
(Cabecera y pie de página)
(Cabecera y pie de página)
Línea 63: Línea 63:
  
 
===Cabecera y pie de página===
 
===Cabecera y pie de página===
*Para crearlos simplemente hemos de usar los métodos '''''header''''' y '''''footer''''' que están creados en la clase FPDP, sin código
 
*Una forma cómoda de hacerlo es crear una clase que extienda de FPDF e implementar los métodos
 
<source lang=php>
 
 
<?php
 
 
require('./fpdf181/fpdf.php');
 
 
class PDF extends FPDF {
 
 
// Page header
 
  function Header() {
 
 
    global $titulo;
 
 
 
    $this->SetFont('Arial', 'B', 15);
 
    //Calculamos el ancho para el título
 
    $ancho = $this->GetStringWidth($titulo) + 6;
 
 
    //Métodos para establecer colores
 
 
    $this->SetDrawColor(255, 0, 0);    // Color del borde
 
    $this->SetFillColor(230, 230, 0); //Color de relleno
 
    $this->SetTextColor(0, 50, 50);  //XColor del texto
 
    //
 
    // Logo
 
    $this->Image('cesta.png', 10, 6, 30);
 
    // Arial bold 15
 
    // Move to the right
 
    $this->Cell(80);
 
    // Title
 
    $this->Cell($ancho, 10, utf8_decode($titulo), 1, 1, 'C', true);
 
    // Line break
 
    $this->Ln(20);
 
  }
 
 
// Page footer
 
  function Footer() {
 
    // Position at 1.5 cm from bottom
 
    $this->SetY(-15);
 
    // Arial italic 8
 
    $this->SetFont('Arial', 'I', 8);
 
    // Page number
 
    $this->Cell(0, 10, utf8_decode('Imprimiendo líneas    Pagina ') . $this->PageNo() . '/paginas', 0, 0, 'C');
 
  }
 
 
}
 
 
// Instanciation of inherited class
 
$pdf = new PDF();
 
$titulo = "Listado de productos";
 
$pdf->AliasNbPages("paginas"); //Define un nombre para el número de páginas
 
$pdf->AddPage();
 
$pdf->SetFont('Times', '', 12);
 
/*
 
* Aquí abría que localizar los productos y visualizarlos
 
* */
 
 
 
$pdf->Output();
 
?>
 
</source>
 
{{MRM_Actividad|Title=Listado de productos en pdf|
 
Vamos a completar el código anterior para visualizar un listado con los productos}}
 
 
 
===Escribiendo texto===
 
===Escribiendo texto===
  

Revisión de 01:12 28 mar 2017

Fpdf

  • fpdf o Free pdf es una librería o biblibioteca que nos permite generar ficheros o documentos pdf desde php.
  • La documentación es muy buena y está en castellano

Plantilla:MRM Recursos en la Web

  • Como está explicado de forma sencilla, vamos a ver ejemplos concretos y referenciaremos en la web

Uso básico

  • Entendemos por ello el mínimo número de acciones para visualizar un documento pdf.
  • Descargamos la librería (Necesitamos el fichero fpdf.php, el css y la carpeta de fuentes
<?php
require('fpdf.php');
 
$pdf = new FPDF();
$pdf->AddPage(); //Agregar una página
$pdf->SetFont('Arial','B',16); //Establecer la fuente, obligatorio antes de escribir un texto
$pdf->Cell(40,10,'Hello World!'); //Añadir una celda: Recuadro en la posición actual, especificando anchura, altura y texto 
$pdf->Output(); //Generando la salida o página pdf
?>
Icon present.gif
Tip: No se puede generar ninguna salida antes ni después de output


Icon present.gif
Tip: El método Cell admite hasta 7 parámetros http://www.fpdf.org/es/doc/cell.htm


Estableciendo conjunto de caracteres

  • Para ello podemos usar el método utf8_decode() de php, partiendo de la ide que esté codificado en utf8 y queramos usarlo enISO 8859-1 es una norma de la ISO que define la codificación del alfabeto latino.
<?php
 
require ('./fpdf181/fpdf.php');
 
$pdf = new FPDF();
$text = "España es un país muy bonito";
$pdf->AddPage(); //Agregar una página
$pdf->SetFont('Arial', 'B', 16); //Establecer la fuente, obligatorio antes de escribir un texto
$pdf->Cell(40, 10, "$text"); //Añadir una celda: Recuadro en la posición actual, especificando anchura, altura y texto
$pdf->Ln();
$text = utf8_decode($text);
$pdf->Cell(40, 10, "$text"); //Añadir una celda: Recuadro en la posición actual, especificando anchura, altura y texto
$pdf->Output(); //Generando la salida o página pdf
?>

</source>

  • También podemos crear una fuente a partir de un fichero ttf y crearlo con un sistema de codificación concreto.
  • Vamos a incorporar una nueva fuente a nuestra página.
  • Para ello vamos a la siguiente url para localizar la fuente


Icon inter.gif
Web de estilos de letra

http://www.abstractfonts.com/


  • Descargamos el fichero ttf con tipo de letra
  • Posteriormente podemos crear el fichero de carga de tipo de letra con la herramienta makefont
 php makefont/makefont.php fuetes_ttf/tipo_letra_ttf_descargada.TTF  iso-8859-1
  • Esto genera dos ficheros que copiamos a la carpeta font
  • Una vez ahí podemos usar el método AddFont para añadir la fuente, y luego usarla
//....
$pdf->AddFont('fuenteAmazOOS', '', 'AmazOOSTROBBold.php'); //Añade una fuente nueva estableciendo el fichero
$pdf->SetFont('fuenteAmazOOS'); //Establecer la nueva fuente
$pdf->Cell(40, 10, "$text"); //Añadir una celda: Recuadro en la posición actual, especificando anchura, altura y texto
$pdf->Output(); //Generando la salida o página pdf

Cabecera y pie de página

Escribiendo texto

Añadiendo páginas

Estableciendo imágenes y links

Agregando tablas