0% encontró este documento útil (0 votos)
29 vistas12 páginas

6 8 PDF

El documento detalla diversas librerías para generar PDFs en PHP, como domPDF, fPDF, y mPDF, y discute sus características y eficiencia en diferentes contextos. Se enfoca en la librería fPDF, proporcionando instrucciones sobre su instalación, configuración y uso, así como ejemplos de funciones y atributos para crear documentos PDF personalizados. Además, se incluye un ejemplo práctico de creación de una factura utilizando fPDF.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
29 vistas12 páginas

6 8 PDF

El documento detalla diversas librerías para generar PDFs en PHP, como domPDF, fPDF, y mPDF, y discute sus características y eficiencia en diferentes contextos. Se enfoca en la librería fPDF, proporcionando instrucciones sobre su instalación, configuración y uso, así como ejemplos de funciones y atributos para crear documentos PDF personalizados. Además, se incluye un ejemplo práctico de creación de una factura utilizando fPDF.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

6.8.

- PDF en PHP

1. Librerías para hacer PDF desde PHP


Para crear nuestros documentos en PDP desde PHP necesitamos utilizar una librería externa.
Existen unas cuantas librerías que tenemos a nuestra disposición como domPDF, fPDF,
html2pdf, mPDF, tcpdf, PDFLib, setaPDF... y las diferencias entre una y otra no
siempre están disponibles a simple vista. Casi podríamos decir que elegir la librería para generar
pdfs es un proyecto en sí mismo.
Si estás en un ambiente de hosting compartido lo principal es verificar la versión de php y qué
extensiones están disponibles. Luego debes entender qué buscas priorizar: la facilidad de
implementar la librería o la eficiencia en el uso de los recursos.
Si necesitas generar PDFs con grandes detalles gráficos (Inclusión de imágenes de fondo por
ejemplo), lo más probable es que te convenga inclinarte por librerías como domPDF, mPDF o
html2pdf. El problema que tienen estas librerías es que se vuelven poco eficientes cuando se trata
de generar muchos archivos en poco tiempo.
Si el principal requisito de tu aplicación es la velocidad de procesamiento nos decantaremos por
fPDF, PDFLib siendo la mejor opción PDFLib. En el caso de PDFLib esta velocidad viene
con un precio: se trata de una librería pago y, si estás en un ambiente de hosting compartido, puede
ser complejo instalarla.
El siguiente cuadro muestra las opciones más conocidas y sus características principales:

Basado Instalación
Código Orientada
en a Objetos
vía Documentación Dependencias
abierto
HTML composer*
PHP 7.1+
DOM
domPDF Sí Sí Sí Sí Buena
MBStringphp-
font-lib
php-svg-lib
fPDF Sí No Sí No Regular
html2pd PHP 5.6+
f Sí Sí Sí Sí Buena gd
MBString
PHP 5.6 a 7.4
mPDF Sí Sí Sí Sí Buena gd
MBString
tcpdf Sí No Sí Sí Regular PHP 5.3+
PDFLib No No Sí No Muy buena –
setaPDF No No Sí Sí Muy buena
* Composer es un gestor de dependencias para PHP desarrollado en PHP, ayuda a administrar
librerías de terceros que quieres incorporar a tu proyecto (https://getcomposer.org/).

2. La librería fPDF (Free PDF)


Comenzaremos configurando nuestro entorno, exploraremos las funciones básicas y terminaremos
creando un PDF personalizado.
FPDF no necesita de ninguna extensión para PHP (excepto Zlib para activar la compresión y GD
para soporte a GIF) y funciona con PHP5 (≥ 5.1), PHP7 y PHP8.

2.1. Descargar e Instalar FPDF


1. Descarga:
• Visita fpdf.org y descarga la última versión disponible de la librería FPDF
(http://www.fpdf.org/).
2. Extraer y Configurar:
• Extrae el contenido del archivo ZIP descargado.
• Crea una carpeta llamada PDF en tu servidor local.
• Dentro de la carpeta PDF, crea una subcarpeta llamada fpdf.
• Copia todos los archivos extraídos en la carpeta fpdf.

2.2. Configuración del Proyecto


Crear el Archivo Principal (index.php)
1. Incluir la Librería: Usa require para incluir el archivo principal de FPDF:

2. Crear una Instancia de FPDF:

3. Agregar una Página y Mostrar el PDF:


4. Probar en el Navegador:
• Abre http://localhost/PDF/index.php en tu navegador. Verás una hoja
en blanco en formato PDF.

2.3. Agregar Contenido al PDF


2.3.1. Establecer Fuente
Define el tipo, estilo y tamaño de la fuente:

2.3.2. Agregar una Celda


Utiliza la función Cell para agregar contenido en una celda:

• Parámetros de Cell:
1. Ancho: Ancho de la celda (en puntos).
2. Alto: Alto de la celda (en puntos).
3. Texto: Contenido del texto en la celda.
4. Borde: 1 para mostrar borde, 0 para no mostrarlo.
5. Salto de Línea: 1 para mover el cursor a la siguiente línea.
6. Alineación: L (izquierda), C (centrado), R (derecha).

Ejemplo de un PDF con texto centrado:


2.4. Trabajar con Texto Largo
Cuando el texto supera el tamaño de la celda, puedes usar MultiCell:

• Diferencia con Cell: MultiCell ajusta automáticamente el texto a varias líneas.

2.5. Posicionamiento con Coordenadas


2.5.1. Establecer Posición Horizontal (SetX)

2.5.2. Establecer Posición Vertical (SetY)

2.5.3. Establecer Posición XY


2.6. Crear Páginas Adicionales
Usa AddPage para agregar nuevas páginas:

2.7. Configuración de la Página


2.7.1. Orientación de la Página
• Retrato (Vertical): P (Predeterminado).
• Paisaje (Horizontal): L.

2.7.2. Unidad de Medida


• Milímetros (mm) (Predeterminado).
• Puntos (pt), Centímetros (cm), Pulgadas (in).

2.7.3. Tamaño de la Página


• Predefinidos: A3, A4, A5, Letter, Legal.
• Personalizado:
2.8. Agregar Estilos Adicionales
8.1. Fondo en MultiCell
Define si el texto tiene un fondo (negro por defecto):

2.8.2. Alinear Texto con Coordenadas Relativas

2.9. Ejemplo completo


3. Atributos y funciones de la clase FPDF
La clase FPDF en PHP proporciona múltiples atributos y funciones para generar archivos PDF. A
continuación, te detallo los atributos principales y las funciones más utilizadas.

3.1. Atributos de la clase FPDF


Los atributos de FPDF controlan el comportamiento del documento PDF.

Atributo Descripción
$page Número actual de la página.
$n Número total de objetos en el documento.
$offsets Array con las posiciones de cada objeto.
$buffer Contiene el contenido del PDF en memoria.
$pages Array que almacena el contenido de cada página.
$state Estado del documento (0 = vacío, 1 = en construcción, 2 = finalizado).
$fonts Array con las fuentes disponibles en el documento.
$images Array con las imágenes cargadas en el documento.
$currentFont Fuente actual usada en el documento.
$underline Indica si el texto debe subrayarse.
$DrawColor Color para trazos (RGB o Grayscale).
$FillColor Color para rellenos (RGB o Grayscale).
$TextColor Color para textos (RGB o Grayscale).
$AutoPageBreak Controla si se genera un salto de página automático.
$PageBreakTrigger Posición en la que se activa un salto de página automático.
$InHeader Indica si se está procesando el encabezado.
$InFooter Indica si se está procesando el pie de página.

3.2. Funciones de la clase FPDF


3.2.1. Configuración y creación del documento
FPDF::__construct()
Crea un nuevo documento PDF.

$pdf = new FPDF($orientation = 'P', $unit = 'mm', $size = 'A4');

Parámetros:
• $orientation: Orientación de la página (P = vertical, L = horizontal).
• $unit: Unidad de medida (mm, cm, pt, in).
• $size: Tamaño de la página (A3, A4, A5, Letter, Legal o un array [ancho,
alto]).
AddPage()
Añade una nueva página al documento.
$pdf->AddPage();

SetMargins($left, $top, $right)


Establece los márgenes del documento.
$pdf->SetMargins(10, 10, 10);

4️SetAutoPageBreak($auto, $margin)
Activa o desactiva el salto de página automático.
$pdf->SetAutoPageBreak(true, 20);

3.2.2. Configuración de texto y estilos


SetFont($family, $style, $size)
Define la fuente del texto.
$pdf->SetFont('Arial', 'B', 12);

Parámetros:
• $family: Fuente (Arial, Courier, Times, etc.).
• $style: Estilo (B = negrita, I = cursiva, U = subrayado, vacío '' para normal).
• $size: Tamaño de la fuente en puntos.

Cell($w, $h, $txt, $border, $ln, $align, $fill)


Imprime un texto en una celda.
$pdf->Cell(40, 10, 'Hola Mundo', 1, 1, 'C');

Parámetros:
• $w: Ancho de la celda.
• $h: Alto de la celda.
• $txt: Texto a mostrar.
• $border: 0 sin borde, 1 con borde.
• $ln: 0 sigue en la misma línea, 1 mueve a la siguiente.
• $align: L = Izquierda, C = Centro, R = Derecha.
• $fill: true para fondo de color, false sin fondo.

MultiCell($w, $h, $txt, $border, $align, $fill)


Imprime un texto en varias líneas.
$pdf->MultiCell(190, 10, "Este es texto largo y ocupa varias líneas", 1, 'J');
Write($h, $txt)
Escribe texto con ajuste automático de línea.
$pdf->Write(10, "Este es un párrafo largo que se ajusta automáticamente.");

3.2.3. Imágenes y gráficos


Image($file, $x, $y, $w, $h, $type, $link)
Inserta una imagen en el PDF.
$pdf->Image('logo.png', 10, 10, 30);

Parámetros:
• $file: Ruta de la imagen (JPG, PNG, GIF).
• $x, $y: Posición en la página.
• $w, $h: Ancho y alto (opcional).
• $type: Tipo de imagen (detectado automáticamente).
• $link: URL opcional.

3.2.4. Dibujar formas


Line($x1, $y1, $x2, $y2)
Dibuja una línea en el PDF.
$pdf->Line(10, 20, 100, 20);

Rect($x, $y, $w, $h, $style)


Dibuja un rectángulo.
$pdf->Rect(50, 50, 100, 50, 'D');
// 'D' para borde, 'F' para relleno, 'DF' para ambos

3.2.5. Encabezado y pie de página


Header()
Se ejecuta automáticamente en cada página al añadir una nueva.
function Header() {
$this->SetFont('Arial', 'B', 12);
$this->Cell(190, 10, 'Encabezado del PDF', 0, 1, 'C');
}

Footer()
Se ejecuta automáticamente en cada página al final.
function Footer() {
$this->SetY(-15);
$this->SetFont('Arial', 'I', 10);
$this->Cell(0, 10, 'Página ' . $this->PageNo(), 0, 0, 'C');
}
3.2.6. Exportar el PDF
Output($name, $dest)
Genera el archivo PDF.
$pdf->Output('mi_documento.pdf', 'I');

Modos de salida:
• 'I' → Muestra en el navegador.
• 'D' → Descarga el PDF.
• 'F' → Guarda en el servidor.
• 'S' → Devuelve el PDF como una cadena.

4. Ejemplo real: Factura.pdf


Pasos para crear factura_pdf.php:
1. Se extiende la clase FPDF para personalizar la factura (Header y Footer).
2. Se genera el encabezado con el logo de la empresa y los datos del cliente.
3. Se crea una tabla con los productos, mostrando nombre, cantidad, precio y total.
4. Se calcula el total de la factura.
5. El PDF se genera y se muestra en el navegador.

También podría gustarte