Informes

 
Objetivo
 
Documentar las diferentes formas y librerias que permite manejar PHP para generar informes y exportarlos a  PDF, Excel y Word.
Informes
 
1. Que es un informe
 
Un informe suele ser algún tipo de documento que presenta información. Dichos datos, por otra parte, surgen de una tarea investigativa. Un científico, por citar un caso, puede escribir un informe después de alcanzar algún descubrimiento, explicando los pasos que siguió y cuáles son sus conclusiones al respecto.
 

Por lo general, la finalidad del informe es, obviamente, informar. De todas formas, estos escritos pueden incluir consejos u otros elementos que apunten a la persuasión.

Los informes, por otra parte, pueden ser públicos o privados según el objetivo de divulgación. En cuanto a los formatos de los informes, pueden ser simples o complejos de acuerdo a su estructura y a sus contenidos.

Extraido de: definicion.de/informe/

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

 FPDF

 

                                                   Extraido de:community.linuxmint.com/software/view/php-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.

FPDF es una clase escrita en PHP que permite generar documentos PDF directamente desde PHP, es decir, sin usar la biblioteca PDFlib. La F de FPDF significa Free (gratis y libre): puede usted usarla para cualquier propósito y modificarla a su gusto para satisfacer sus necesidades.

extraida de: www.fpdf.org/ 

 

Aporte: El anterior video nos enseña donde podemos descargar la libreria FPDF como podemos configurar en nuestro editor de codigo y nos da un ejemplo de como podemos realizar un archivo PDF desde esta libreria y con un codigo PHP como ejemplo.

 

 MPDF :

 

 Extraido de: vabadus.es/blog/generar-pdf-en-drupal-7-usuando-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.

 

 

TCPDF:

 Extraido de: soyprogramador.liz.mx/tcpdf-para-crear-documentos-pdf-con-php/

 otro magnifico 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.

TCPDF es una Open Source Clase/Biblioteca para el Popular Lenguaje de Programación Web PHP v4 y v5, la cual permite crear ficheros PDF al vuelo, es decir dinámicamente.

Dos de las cualidades más apreciadas de esta clase, es su simplicidad a la hora de crear archivos PDF y la capacidad de interpretar código XHTML.

Actualmente se encuentra en constante desarrollo, la versión más reciente es la TCPDF 6.2.12, publicada el 12 de septiembre de 2015.

Extraido de: es.wikipedia.org/wiki/TCPDF

 

 

Aporte: El anterior video es una excelente demostracion del uso de la libreria TCPDF para generar un archivo PDF en PHP, nos relaciona un ejemplo del codigo usado tanto para importar la libreria como las sentencias para configurar la pel formato de la pagina, todo esto con una base de datos creada para poder extrarer los datos al formato PDF. 

 

FPDI:

 Extraido de: codezag.com/adding-content-existing-pdf-using-fpdi-php-library/

 

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

FPDI es una colección de clases de PHP que facilita a los desarrolladores leer páginas de documentos PDF existentes y usarlas como plantillas en FPDF , que fue desarrollado por Olivier Plathey. Además de una copia de FPDF , FPDI no requiere ninguna extensión especial de PHP.

FPDI también se puede usar con TCPDF (6.x).

FPDI se publica bajo la licencia MIT a partir de la versión 1.6 (las versiones anteriores se publicaron bajo la licencia de Apache Software, versión 2.0).

Extraido de: www.setasign.com/products/fpdi/about

 

DOMPDF:

 

Extraido de: i.ytimg.com/vi/8qZ1hAiecmU/hqdefault.jpg


 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.

Extraido de: github.com/dompdf/dompdf/wiki

 

Aporte Personal: Estas son algunas de las librerias para generar PDF hay muchas mas pero estas son las mas usadas para generar estos archivos en PHP, estas librerias la mayoria son de codigo abierto y estan basadas en licencia GPL-GNU-MIT, estas librerias tienen la capacidad de convertir codigo HTML-CSS a formato PDF esto para darnos una gran ayuda a la hora de generar informes de consultas en nuestros programas.

 

3. Realizar un cuadro comparativo entre las diferentes librerias con sus diferencias y similitud
 

 

 
FPDF:

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.
MPDF:

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.
 
TCPDF:
 

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.
FPDI:
 

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..
4. Creación de informes o reportes en .pdf (librería ezpdf), cuales son los pasos a seguir y realizar ejemplos básicos:
 
Pasos a seguir:
 
1-Para empezar necesitamos incluir una libreria a nuestro script y hacer uso de la clase ezPDF
 

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 – 

$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(‘Titulo Principal’,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();

}

Extraido de: beeznest.com/es/2009/01/19/generar-reportes-pdf-con-php-usando-la-libreria-ezpdf/

 

require_once '../../includes/cnx.php';
$cuenta=$_POST['cuenta'];
  $sql2=mysql_query("SELECT tipo, cod_cuenta FROM cuenta WHERE cod_cuenta=$cuenta",$con);
  $row2 = mysql_fetch_array($sql2);     
  $nom_cuenta=$row2['tipo'];
$rubro=$_POST['rubro'];
  $sql3=mysql_query("SELECT rubro, cod_rubro FROM rubro WHERE cod_rubro=$rubro",$con);
  $row3 = mysql_fetch_array($sql3);     
  $nom_rubro=$row3['rubro'];
  $desde=explode('-',$_POST['fecha']);
     $fecha=$desde[2].'-'.$desde[1].'-'.$desde[0];
     $fecha_d_m_y=$desde[0].'-'.$desde[1].'-'.$desde[2];
  $hasta=explode('-',$_POST['fecha1']);
     $fecha1=$hasta[2].'-'.$hasta[1].'-'.$hasta[0];
     $fecha1_d_m_y=$hasta[0].'-'.$hasta[1].'-'.$hasta[2];
require_once('../../librerias/ezpdf/class.ezpdf.php');
$pdf =& new Cezpdf('a4');
$pdf->selectFont('../../librerias/ezpdf/fonts/Times-Roman.afm');
$pdf->ezSetCmMargins(1,1,1.5,1.5);
$conexion = mysql_connect("localhost", "root", "");
mysql_select_db("sao", $con);
$queEmp = "SELECT * FROM caja WHERE cod_cuenta=$cuenta and cod_rubro=$rubro and fecha between '$fecha' and '$fecha1'";
$resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
$totEmp = mysql_num_rows($resEmp);
$ixx = 0;
while($datatmp = mysql_fetch_assoc($resEmp)) {
 $totalImporte = $totalImporte + $datatmp[importe];
 $ixx = $ixx+1;
 $data[] = array_merge($datatmp, array('num'=>$ixx));
}
$titles = array(
    'cod_caja'=>'Código',
    'descripcion'=>'Descripcion',
    'tipo'=>'Tipo de movimiento',
    'importe'=>'Importe',
    );
$options = array(
    'shadeCol'=>array(0.9,0.9,0.9),
    'xOrientation'=>'center',
    'width'=>500
   );
$txttit = "SAO - SISTEMA DE ADMINISTRACIÓN OFTALMOLÓGICO\n";
$txttit.= "Movimientos de caja\n";
$txttit.= "Cuenta:  $nom_cuenta \n";
$txttit.= "Rubro:  $nom_rubro \n";
$txttit.= "Desde el: $fecha_d_m_y Hasta el: $fecha1_d_m_y  \n";
$pdf->ezText($txttit, 9);
$pdf->ezText("\n\n\n", 3);
$pdf->ezTable($data, $titles, '', $options);
$pdf->ezText("\n\n\n", 10);
$pdf->ezText("Registros: ".$ixx, 10);
$pdf->ezText("\n", 1);
$pdf->ezText("Total: $ ".$totalImporte, 10);
$pdf->ezText("\n", 1);
$pdf->ezText("Fecha: ".date("d/m/y"), 10);
$pdf->ezStream();
?>

Extraido de: www.todoexpertos.com/categorias/tecnologia-e-internet/desarrollo-de-sitios-web/php/respuestas/2689472/inconveniente-en-clase-ezpdf

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

Qué es PHPExcel?

Es un proyecto de proporciona un conjunto de clases para el lenguaje de programación PHP, que le permiten escribir y leer de diferentes formatos de archivo de hoja de cálculo , como Excel ( BIFF ) .xls , Excel 2007 ( .xlsx ) OfficeOpenXML , CSV, Libre / .ods OpenOffice Calc , Gnumeric , PDF , HTML , … Este proyecto se basa en estándar OpenXML de Microsoft y PHP .

 

 

Aporte Personal: Este video nos explica paso a paso como podemos generar un informe en excel a traves de la libreria PHPExcel, nos muestra el codigo general y explicado sobre como generar este reporte, esencial para descargar nuestra informacion de la base de datos a Excel.

 
Informes
 
 
 
Para clase practica de informes


Leer más: https://sistemasremington.webnode.com/informatica2/progrmacion-web-ii/actividades/informes/