Hacer Reportes Con Codeigniter y Extjs

La generacion de pdf en codeigniter es una de las tareas mas habituales en el desarrollo de un sitio web o sistema ya sea para generar reportes o cualquier otro tipo de informacion para ello primero se debe descargar ezpdf ya descargado el archivo y descomprimido procedemos a mover los siguientes archivos (class.ezpdf.php, class.pdf.php y la carpeta fonts) a application/libraries/ el siguiente paso es remombrar el archivo class.ezpdf.php por el de cezpdf.php, ya hecho esta operacion lo editamos y cambiamos la linea:

include_once(‘class.pdf.php’);

por

include_once(APPPATH . ‘libraries/class.pdf.php’);

Ahora creamos un helper, este helper nos ayudara a definir de una el formato de hoja los margenes y el pie de cada pagina el nombre del archivo es el siguiente pdf_helper.php, claro cabe mencionar que debe ser almacenado el archivo en la carpeta helpers, dentro colocamos el siguiente codigo:

if(!defined(‘BASEPATH’))exit(‘No direct script access allowed’);
/*helper funcion ayuda a definir los margenes tipografía y creación del footer y números de pagína*/

function prep_pdf($orientation = ‘portrait’)

{

$CI =& get_instance();

$CI->cezpdf->selectFont(APPPATH.’libraries/fonts/Helvetica.afm’);

$all = $CI->cezpdf->openObject();

$CI->cezpdf->saveState();

$CI->cezpdf->setStrokeColor(0,0,0,1);

if($orientation == ‘portrait’)

{

$CI->cezpdf->ezSetMargins(20,70,20,20);

$CI->cezpdf->ezStartPageNumbers(570,28,8,”,'{PAGENUM}’,1);

$CI->cezpdf->line(20,40,578,40);

$CI->cezpdf->addText(25,32,8,’Impreso ‘ . date(‘m/d/Y h:i:s a’));

}

else

{

$CI->cezpdf->ezStartPageNumbers(750,28,8,”,'{PAGENUM}’,1);

$CI->cezpdf->line(20,40,800,40);

$CI->cezpdf->addText(25,32,8,’Impreso ‘.date(‘m/d/Y h:i:s a’));

}

$CI->cezpdf->restoreState();

$CI->cezpdf->closeObject();

$CI->cezpdf->addObject($all,’all’);

}

?>

solo resta hacer una prueba en el controlador para generar el pdf aqui el codigo a colocar en el controlador:

 

public function genera_pdf()

{

/*load library cezpdf*/

$this->load->library(‘cezpdf’);

$this->load->helper(‘pdf_helper’);

prep_pdf();

$this->cezpdf->ezText(‘Cliente No.: 12′);

$this->cezpdf->ezText(‘Cliente: Abraham Zenteno Sanchez’);

$this->cezpdf->ezText(‘Tienda:  Plaza Dorada’);

$this->cezpdf->ezText(‘Fecha y hora de impresion: ‘.date(‘Y-m-d’).’, ‘.date(‘H:i’).’ hrs.’);

$this->cezpdf->ezText(”);

$db_data[] = array(‘eye’ => ‘O.D.’,’ESF’ => ‘+9.75′,’CIL’ => ‘-1.25′,’EJE’ => ‘3’,’ADD’ => ‘+2.50′,’REF’ => ‘D.I. 4 mm’);

$db_data[] = array(‘eye’ => ‘O.I.’,’ESF’ => ‘+9.20′,’CIL’ => ‘-1.00′,’EJE’ => ‘3’,’ADD’ => ‘+4.50′,’REF’ => ‘D.I. 3 mm’);               $col_names = array( ‘eye’ => ”, ‘ESF’ => ‘ESF.’,   ‘CIL’ => ‘CIL.’, ‘EJE’ => ‘EJE’,   ‘ADD’ => ‘ADD’, ‘REF’ => ”  );

$this->cezpdf->ezTable($db_data, $col_names, ‘Graduacion registrada el 3 de Diciembre del 2009’, array(‘width’=>550));                           $this->cezpdf->ezStream(array(‘Content-Disposition’=>’nama_file.pdf’));

}

?>

acedemos http://domain/index.php/controller/genera_pdf, esto para que verificar que se han cumpido todos los pasos en este mini tuto espero haya sido de ayuda, y recuerda comentar no cuesta nada saludos.