Esta es una versión beta (pero utilizable). La extensión utiliza la librería FPDF para generar grillas (grids) similares a las generadas por CGridView (widget que se utiliza en los views de admin)
Copiar la carpeta pdf en protected/extensions. Si se guarda en otra ubicación se debe modificar la linea Yii::import('ext.pdfGrid.fpdf.PDF'); en el archivo EPdfGrid.php
El uso es muy similar a CGridView con algunas limitaciones y el agregado de la variable config y filename
$this->widget('ext.pdf.EPDFGrid', array( 'id' => 'informe-pdf', 'fileName' => 'Informe en PDF',//Nombre del archivo generado sin la extension pdf (.pdf) 'dataProvider' => $dataProvider, //puede ser $model->search() 'columns' => array( 'columnName1', 'columnName2', 'columnName3', array( 'name' => 'columnName4', 'value' => '$data->relationName->value', ), ), 'config' => array( 'title' => 'Libro Diario', 'subTitle' => 'Informe Al: '.$model->fecha, 'colWidths' => array(40, 90, 40, 70), ), ));
La opción config tiene los siguientes atributos y valores por defecto:
pdfSize (A4)
Parametro size para FPDF.
Posibles valores: A3, A4, A5, Letter, Legal
title ('')
Título que aparecerá en el PDF
subTitle ('')
Subtítulo
tableWidth (275) Ideal para A4
Ancho total de la tabla
rowHeight (6)
Altura de las filas
colAligns (null)
Array con alineación de las columnas ('L', 'C', 'R') por defecto L para todos
Ej: array('C', 'L', 'C')
La longitud del array debe ser menor o igual a la cantidad de columnas
Si la longitud es menor, a las columnas restantes se les aplicará la alineación L
colWidths (null)
Array con el ancho de cada columna. Por defecto se calcula tableWidth/cantColumnasVisibles
Ej: array(40, 90, 70)
La longitud del array debe ser menor o igual a la cantidad de columnas
Si la longitud es menor, se calculará la longitud de las columnas restantes
showLogo (false)
Valor booleano que determina si en la cabecera se mostrara la imagen ubicada en el atributo imagePath
imagePath (YiiBase::getPathOfAlias('webroot').'/images/logo.jpg')
Imagen a mostrar si showLogo está en true
headerDetails (false)
Valor booleado que determina si se mostrarán algunos detalles predeterminados en la cabecera.
En la versión actual los detalles son modificables solo por codigo. Se debe editar el archivo ext.pdfGrid.fpdf.PDF en la función Header
Los detalles que aparecerán en la cabecera son los siguientes
$txt = "Emitido por: ".Yii::app()->user->name."\n"; $txt .= "Fecha : ".date('d/m/Y')."\n"; $txt .= "Página ".$this->PageNo()."/{nb}"; // nro de pagina

Total 6 comments
¿Por qué si showLogo=>true, el PDF renderiza las líneas impares en Negrita?
Please add support for UTF
outputs as Função
Update: the data on the database outpusts correctly with the utf conversion function included on this extension. But please add support so we can add any other UTF on the "Name" parameter because it shows "Função" as "Função"
I have wriiten it,before caling extension ,& working correctly.
tell me,where I have to write ob_clen().
You must add : ob_clean();
I have tried extension,I got this error,during my test,can you help me ,to solve it.
Leave a comment
Please login to leave your comment.