Informes

Objetivo Documentar las diferentes formas y librerías que permite manejar PHP para generar informes y exportarlos a PDF, Excel y Word.

Informes 

1. Que es un informe

Un informe es un método eficaz de presentar los datos en formato impreso. ... Dado que tiene el control sobre el tamaño y el aspecto de todo el informe, puede mostrar la información en la manera que desee verla. 

Un informe es un objeto de base de datos que resulta útil para presentar la información de la base de datos con alguno de los siguientes propósitos: Mostrar o distribuir un resumen de los datos. Archivar instantáneas de los datos

Los informes nos sirven para realizar listados por impresoras de los datos de una tabla. Estos listados se pueden personalizar o bien utilizar un asistente (parecido al de los formularios).

2. Librerías para generar PDF con PHP y explicar cada una de ellas

Las librerías para generar reportes PDF con PHP y MySQL. Un sistema que gestiona grandes cantidades de información siempre requerirá mostrar información a través de un reporte o informe, que cuyos resultados pueden ser mostrados en forma de imágenes, texto y entro otros, para los distintos usuario. 

1. FPDF Es una librería escrita en php para crear archivos y visualizar en el navegador en formato PDF, la librería está escrita utilizando paradigma orientado a objetos, es liberado bajo la licencia GPL, se puede usar con fines educativos y comercial.

La biblioteca tiene funciones como:

  • Elección de la unidad de medida, formato de página y márgenes
  • Gestión de cabeceras y pies de página
  • Salto de página automático
  • Salto de línea y justificación del texto automáticos
  • Admisión de imágenes (JPEG, PNG y GIF)
  • Colores
  • Enlaces
  • Admisión de fuentes TrueType, Type1 y codificación
  • Compresión de página.

2. MPDF es una biblioteca para generar reportes en el formato de archivo PDF, esta liberado bajo la licencia GPL, esta biblioteca está basada en FPDF, HTML2PDF y UPDF por cual algunas características y funciones se ha mejorado considerablemente.

He aquí las características de esta librería.

  • Acepta codificación UTF-8 HTML
  • Es compatible con casi todos los idiomas, incluyendo RTL (árabe y hebreo), y CJK - (chino-japonés-coreano)
  • marcadores
  • hojas de estilo CSS
  • El espacio entre palabras y espaciado entre caracteres para la justificación
  • elementos en bloque anidado (por ejemplo, P, DIV), incluidos los márgenes, bordes y relleno, línea de altura, colores de fondo, etc.
  • De apoyo (parcial) para flotar y de posición fija de bloque-elementos
  • diseño de página y la orientación
  • Texto-justificación y la separación de sílabas
  • la numeración de páginas
  • Pares e impares de localización, siendo los márgenes de espejo
  • encabezados y pies de página
  • columnas
  • - Tablas tablas anidadas, girada o autosized para que quepa en una página
  • Tabla de contenido
  • Índice
  • Las marcas de agua
  • Imágenes en formato JPG, GIF, PNG, SVG, BMP o WMF
  • Protección de contraseña
  • anotaciones
  • Los códigos de barras (EAN 13, UPC-A / E, Código 11, 39, 93, 128, Codabar, MSI, IMB, Planeta, Postnet, RM4SCC etc.)
  • Importar otro archivo PDF y utilizar como plantilla
  • subconjuntos de fuentes incorporadas
  • compatibilidad con PDF / A-1b (ISO 19005-1: 2005)
  • PDF / X-1a ayuda.

3. TCPDF, otro magnífico librería para generar informes en PHP, en el formato de archivo PDF, esta librería es de código abierto liberado bajo la licencia GNU-LGPL.

Entre los principales características esta:

  • no se necesitan bibliotecas externas para las funciones básicas;
  • todos los formatos de página estándar, formatos de página personalizados, márgenes y unidades de medida;
  • UTF-8 Unicode y de derecha a izquierda idiomas;
  • TrueTypeUnicode, v1 OpenTypeUnicode, TrueType, OpenType v1, Tipo 1 y CID-0 fuentes;
  • subconjunto de fuentes;
  • métodos para publicar algo de código XHTML + CSS, Javascript y las formas;
  • imágenes, gráficos (figuras geométricas) y la transformación de los métodos;
  • Admite los formatos JPEG, PNG y SVG imágenes de forma nativa, todas las imágenes soportados por GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) y todas las imágenes soportados a través de ImagMagick (https://www.imagemagick.org/ script / formats.php )
  • 1D y 2D códigos: Code 39, ANSI MH10.8M-1983, USD-3, 3 de 9, CÓDIGO 93, USS-93, Estándar 2 de 5, Interleaved 2 de 5, Código 128 A / B / C, 2 y extensión basada en la UPC 5 dígitos, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal mail Código de cliente de 4 estados), CBC (cliente de código de barras), KIX (índice Klant - índice cliente), correo inteligente de código de barras, OneCode, USPS-B-3200, CODABAR, CÓDIGO 11, Pharmacode, Pharmacode DOS PISTAS, Datamatrix, QR-Code, PDF417;
  • Los perfiles ICC JPEG y PNG, escala de grises, RGB, CMYK, tintas planas y transparencias;
  • encabezado de página automático y gestión de pie de página;
  • el cifrado de documentos de hasta 256 bits y certificaciones de firma digital;
  • operaciones de deshacer los comandos;
  • anotaciones PDF, incluidos los enlaces, texto y archivos adjuntos;
  • los modos de representación de texto (relleno, trazo y recorte);
  • modo en varias columnas;
  • no escritura regiones de la página;
  • marcadores, los destinos con nombre y la tabla de contenidos;
  • separación de palabras de texto;
  • Texto del estiramiento y el espaciamiento (seguimiento);
  • alineaciones salto de página, saltos de línea y de texto automáticos, incluyendo la justificación;
  • grupos automáticos de numeración de páginas y páginas;
  • mover y eliminar páginas;
  • la compresión de página (requiere extensión PHP-zlib);
  • Plantillas XObject;
  • Capas y visibilidad de los objetos.
  • compatibilidad con PDF / A-1b.

4. FPDI es una biblioteca que permite generar y leer páginas de documentos PDF, está liberado bajo la licencia MIT, esta librería está basada en FPDF que tiene ciertas mejoras y ventajas. 

Entre sus características y funciones se muestra a continuación.

  • La generación de cabecera
  • Mallas para tablas de gran tamaño en varias páginas
  • Encabezados de la tabla
  • Escribir detrás o delante de una plantilla
  • Cambiar el tamaño de una plantilla después de la creación
  • Los datos de las plantillas se incluyen en un documento PDFsólo una vez
  • Menos uso de memoria
  • Menos tiempo de generación
  • Archivos PDF más pequeños
  • Ayuda de la plantilla recursiva (uso de plantillas en las plantillas)
  • Etc..

5. DOMPDF Es un conversor de HTML a PDF escrito en PHP. Interpreta HTML y CSS para la generación de documentos en PDF con un soporte bastante adecuado para CSS 2.1, incluso algunos avanzados como bordes redondeados en las cajas.

dompdf es un convertidor de HTML a PDF. En esencia, dompdf es (principalmente) un diseño HTML HTML2.1 y un motor de renderizado escrito en PHP. Es un procesador de estilo: descargará y leerá hojas de estilo externas, etiquetas de estilo en línea y los atributos de estilo de elementos HTML individuales. También es compatible con la mayoría de los atributos de HTML de presentación.

Las principales características de DomPDF son:

  • Maneja la mayoría de CSS 2.1 y algunas propiedades CSS3, incluidas las reglas @import, @media y @page
  • Admite la mayoría de los atributos de presentación 4.0 de HTML
  • Admite hojas de estilo externas, locales o a través de http / ftp (a través de fopen-wrappers)
  • Admite tablas complejas, que incluyen intervalos de filas y columnas, modelos de borde separados y contraídos, estilo de celda individual
  • Soporte de imagen (gif, png (8, 24 y 32 bits con canal alfa), bmp y jpeg)
  • Sin dependencias de bibliotecas PDF externas, gracias a la clase R&OS PDF
  • Soporte PHP en línea
  • Soporte básico de SVG

6. Snappy es una biblioteca PHP5 que permite la generación de miniaturas, instantáneas o PDF desde una url o una página html. Utiliza wkhtmltopdf y wkhtmltoimage basados ​​en webkit disponibles en OSX, Linux y Windows. Tienes que descargar wkhtmltopdf 0.12.x para usar Snappy.

wkhtmltopdf y wkhtmltoimage son herramientas de línea de comandos de código abierto (LGPLv3) para renderizar HTML en PDF y varios formatos de imagen utilizando el motor de renderizado Qt WebKit. Estos funcionan completamente sin encabezado y no necesita visualizarse.

3. Realizar un cuadro comparativo entre las diferentes librerías con sus diferencias y similitudes

4. Creación de informes o reportes en .pdf (librería ezpdf), cuales son los pasos a seguir y realizar ejemplos básicos (https://blog.unijimpe.net/generar-pdf-con-php/)

Para poder hacer un informe de una manera correcta, y además fácil, debemos guiarnos de una serie de pasos, tal y como te explicamos a continuación:

Este artículo es para aquellos desarrolladores PHP que quieren además de generar un reporte en html crear dinámicamente documentos PDF con PHP. Hoy por hoy existen diversas librerías que están disponibles para este objetivo, sin embargo el uso del ezPDF es de lo mas sencillo, solo se necesita incluir una librería a nuestro script y hacer uso de la clase ezPDF para crear nuestro archivo PDF.

Para nuestro ejemplo vamos a crear una primera función en la cual almacenaremos todos los valores en un array que luego lo pasaremos a otra función la cual se encargará de imprimir el documento PDF.

function reporte(){

// realizamos una consulta rapidamente - ojo : se está obviando la conexión puesto que no es el objetivo de este post

$sql = "select s.name,s.apellido,s.fecha from tabla_1 t inner join tabla_2 s on t.site_id = s.id where t.id = $variable;
$rs = mysql_query($sql)or die("Could not able site");
$row = mysql_fetch_object($rs);

// llamamos al archivo donde se va a crear la segunda funcion

require_once('imprime.php');

// inicializamos el objeto pdf

$this->pdf = new imprime();

// los resultados del query los colocamos dentro de un array

$data_info = array('name' => $row->name,
'apellido' => $row->apellido,
'fecha' => $row->fecha
);

// llamamos a la segunda funcion y le pasamos el parametro - ojo :se puede pasar mas de un parametro separado por comas

$this->pdf->imprime($data_info);

}

// aqui la segunda funcion, la cual se encarga de diseñar el documento, recoge los parametros

function imprime($data_info){

// nuevo documento pdf - ojo: dentro del parentesis pueden colocar el tipo de hoja como A4, A3, etc

$pdf= new Cezpdf();

// utilizamos la fuente Helvetica.afm

$pdf->selectFont('fonts/Helvetica.afm');

// margenes de la hoja

$pdf->ezSetMargins(30, 30, 50, 30);
$pdf->ezSetY(810);
$pdf->ezText('<b>Titulo Principal</b>',14,array('justification'=>'left'));

// aqui colocamos una imagen que va a actuar como fondo de la hoja - ojo: esta librería solo acepta extensiones jpg y png

$img = ImageCreatefromjpeg(PUBLIC_IMAGES.'imagen.jpg');
$pdf-> addImage($img,120,300,400,400);

// insertamos una linea para comenzar con el contenido

$pdf->line(50,790,550,790);
$pdf->ezSetY(780);

// ingresamos los datos que hemos obtenido del array - ojo: se usa $nombre_variable['indices']

$pdf->ezText('/'.''.$data_info['name'].''.' con '.''.$data_info['apellido'].''.' en la fecha'.''.$data_info['fecha'].' '.'de ejemplo',12,array('justification'=>'left'));
$pdf->ezSetY(50);

// insertamos para nuestro ejemplo la fecha actual del sistema y un pie alineado a la izquierda

$pdf->ezText('(c)'.date('Y').'Pie Principal',12,array('justification'=>'left'));
$pdf->ezSetY(50);
$pdf->ezText(date('j/n/Y g:i'),12,array('justification'=>'center'));
$pdf->ezStream();

}

5. Creación de informes o reportes en excel y word con PHP, cuales son los pasos a seguir y buscar o realizar ejemplos básicos o sencillos




Este enlace contiene el ejercicio de lo informes de la tabla Producto y Cliente de la base de datos Facturación

© 2020 Bases de datos | Todos los derechos reservados
Creado con Webnode
¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar