• Inicio
  • Tecnologia
  • Creatividad
  • Tutoriales
  • Deportes
  • Acerca de
Siguenos!

Como agregar la Librería TCPDF a KumbiaPHP

jun14
2012
6 Comentarios Escrito por D4ni3LR

En esta ocasión vamos a integrar la librería TCPDF con el framework KumbiaPHP.

Que es TCPDF?

TCPDF es una clase PHP libre, que tiene como finalidad generar archivos PDF a partir de informacion HTML.

Para conocer mas sobre sus caracterisitcas pueden ingresar a su web oficial http://www.tcpdf.org y para ver mas ejemplos pueden ingresar a http://www.tcpdf.org/examples.php

Comenzamos…

Lo primero que se debe hacer es descargar la libreria desde este link (versión actual). Una vez descargado debemos crear una carpeta llamada “tcpdf” dentro del directorio libs de nuestra aplicación ejemplo: “/app/libs”, y descomprimir allí el zip que descargamos.

Nota 1: si nuestro “core” de KumbiaPHP es compartido por varias aplicaciones, podemos situar esta carpeta en el directorio “/core/libs”.

Nota 2: cuanto tengamos la aplicacion en produccion podremos borrar los siguientes directorios de TCPDF:

  • Cache
  • Doc
  • Examples
  • CHANGELOG.TXT
  • LICENSE.TXT
  • README.TXT
  • sRGB.icc
  • tcpdf.fdf
  • tcpdf.p12

Ahora, en el directorio “/app/libs/” creamos un archivo llamado “tcpdf.php” con el siguiente contenido:

<?php
require_once APP_PATH . 'libs/tcpdf/tcpdf.php';
require_once APP_PATH . 'libs/tcpdf/config/lang/eng.php';

Nota 3: tambien pueden usar la ruta relativa eso ya es decision de cada cual. Ejemplo:

<?php
require_once 'tcpdf/tcpdf.php';
require_once 'tcpdf/config/lang/eng.php';

Estas dos lineas son suficientes para poder utilizar TCPDF en cualquiera de las aplicaciones que compartan este “core”. El archivo “eng.php” se especifican algunas configuraciones como la codificacion del archivo a generar, entre otras.

La base de datos

Para este ejemplo utilizaremos solo una tabla llamada empleado.

tabla_empleado

El modelo

<?php
 class Empleado extends ActiveRecord{
 }
?>

El controller

<?php

class EmpleadosController extends AppController {

   public function index() {}

   public function imprimir()
   {
      View::template(NULL);
      $modelo = Load::model('empleado');
      $this->listaEmpleados = $modelo->find_all_by_sql("select * from empleado");
   }
}
?>

Las vistas

index.phtml

<?php echo Html::linkAction('imprimir',"Imprimir"); ?>

imprimir.phtml

Esta vista, es la que contiene todo el codigo para la generacion del PDF, lo primero es cargar la libreria usando los archivos que creamos anteriormente:

Load::lib('tcpdf');

a continuación creamos una nueva instancia de TCPDF

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

setteamos alguna informacion de cabecera del archivo PDF

$pdf->SetCreator('TalesDigiTales');//Creador
$pdf->SetAuthor('D4ni3lR');//Autor
$pdf->SetTitle('TCPDF Ejemplo');//Titulo del archivo
$pdf->SetSubject('TCPDF Tutorial');//Asunto
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');//Palabras clve

Agregamos una pagina para el contenido

$pdf->AddPage();

Con esto estamos listos para agregar contenido a nuestro archivo PDF, para este ejemplo lo haremos de la siguiente manera:

$data = '<h1>Datos exportados</h1>'; //Variable que almacena los datos a exportar.
foreach ($listaEmpleados as $empl) {
 $data = $data."Nombre: ".$empl->emp_nombre." Apellido: ".$empl->emp_apellido."<br/>";
}

Los datos a enviar al archivo PDF se deben crear de la siguiente manera:

$html = <<<EOD
$data
EOD;

Finalmente para escribir en los datos el PDF

$pdf->writeHTML($html, true, false, false, false, '');

y para generar el archivo PDF debemos llamar la siguiente linea:

$pdf->Output('example_048.pdf', 'I');

Entonces la vista imprimir.phtml quedaria asi:

<?php

//Cargo la liberia
Load::lib('tcpdf');

// creo un nuevo documento PDF
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// Informacion del documento
$pdf->SetCreator('TalesDigiTales');
$pdf->SetAuthor('D4ni3lR');
$pdf->SetTitle('TCPDF Ejemplo');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');

// agregamos una pagina
$pdf->AddPage();

//datos
$data = '<h1>Datos exportados</h1>';

foreach ($listaEmpleados as $empl) {
$data = $data."Nombre: ".$empl->emp_nombre." Apellido: ".$empl->emp_apellido."<br/>";
}

//salida
$html = <<<EOD
$data
EOD;

$pdf->writeHTML($html, true, false, false, false, '');

//Close and output PDF document
$pdf->Output('example_048.pdf', 'I');

?>

Finalmente, en la url http://nuestro_server/app/empleados/ veremos un link llamado “Imprimir” el cual nos llevará directamente a la descarga del archivo PDF. La salida seria algo mas o menos asi:

pdf

El alcance de este ejemplo únicamente es mostrar como integrar la libreria TCPDF con el framework de KumbiaPHP, para generar reportes más complejos puedes basarte en la web  de ejemplos de TCPDF.

Saludos y hasta la próxima ;)

Si te gustó… dejanoslo saber:

Nota final: actualizado gracias a alberto de http://abweb.com.ve/.  saludos ;)

Publicado en KumbiaPHP, Tecnologia, Tutoriales - Etiquetado Framework php, generar pdf, KumbiaPHP, TCPDF, tutorial kumbiaphp
COMPARTE ESTO CON Twitter Facebook Delicious StumbleUpon Correo Electrónico
← Quieres hacer una web y no sabes que colores utilizar?
Internet y su beneficio académico en Instituciones Educativas →

6 Comentarios

  1. Cristtopher's Gravatar Cristtopher
    15 junio, 2012 at 12:03 | Permalink

    Hola D4ni3lR

    He seguido este completo tuto paso a paso y me aparece el siguiente error:

    Parse error: syntax error, unexpected $end in /var/www/rilsoft/app/views/compras/pdf.phtml on line 36

    //salida
    $html = << linea 36

    Reply
    • D4ni3LR's Gravatar D4ni3LR
      16 junio, 2012 at 15:13 | Permalink

      Podrías regalarme un poco mas de código de la vista?

      Reply
  2. alberto's Gravatar alberto
    17 junio, 2012 at 21:25 | Permalink

    El directorio “vendors” está deprecated en la beta 2. Los archivos deberían colocarse en la misma carpeta libs del default. Ya que no es necesario cambiar el core.

    Reply
    • D4ni3LR's Gravatar D4ni3LR
      20 junio, 2012 at 15:15 | Permalink

      Ok, corregido muchas gracias. ;)

      Reply
  3. leidy !!'s Gravatar leidy !!
    18 junio, 2012 at 14:59 | Permalink

    Estaa Mui Chiimbiita La Pagiiinaa ……
    Pa Lante Como El Elefaaaanteeee :P :P

    Reply
    • D4ni3LR's Gravatar D4ni3LR
      20 junio, 2012 at 15:17 | Permalink

      Gracias ;)

      Reply

Deja un comentario Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Reciente

  • Unidades de medida en la informática
  • Intel revela que USB 3.0 interfiere con periféricos inalámbricos
  • Definición FIRMWARE
  • Los 10 hábitos esenciales de las personas positivas
  • 50 Cosas que un creativo debe hacer en su tiempo libre

Síguenos también en…

TalesDigiTales | Promocionar tu página también


Categorías

  • C++
  • Deportes
  • educación
  • Juegos
  • KumbiaPHP
  • linux
  • Menú
  • Móviles
  • Oracle
  • php
  • Sin categoría
  • Tecnologia
  • Tutoriales
  • WebSite
  • Windows 8

Meta

  • Registrarse
  • Acceder
  • RSS de las entradas
  • RSS de los comentarios
  • WordPress.org
Derechos de copia TalesDigiTales®

EvoLve theme by Theme4Press  •  Powered by WordPress TalesDigiTales®
Soluciones Tecnológicas

Volver al principio