03 diciembre 2009

Generar pdf con la ayuda de ezpdf en codeigniter



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:

<?php
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:




<?php
public function genera_pdf(){
/*load library cezpdf*/
$this->load->library('cezpdf');
$this->load->helper('pdf_helper');
prep_pdf();
$this->cezpdf->ezText('<b>Cliente No.:</b> 12');
$this->cezpdf->ezText('<b>Cliente:</b> Abraham Zenteno Sanchez');
$this->cezpdf->ezText('<b>Tienda:</b> Plaza Dorada');
$this->cezpdf->ezText('<b>Fecha y hora de impresion:</b> '.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 minu tuto espero haya sido de ayuda, y recuerda comentar no cuesta nada saludos.

Excel 2013, convertir mes en texto a numero

Si tienes un mes en formato ENERO este lo cambiara a 02, funciona en la versión de Excel 2013, solo se tienen que reemplazar J2 por la celda...