pdf-grid Extensión para generar Grids similar a CGridView en PDF con FPDF

  1. Requirements
  2. Usage
  3. Opciones de configuración
  4. Ejemplo
  5. Limitaciones

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)

Requirements

  • Probado con Yii 1.1
  • FPDF 1.7 (incluida en la extensión)

Usage

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),
	),
));

Opciones de configuración

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

Ejemplo

Ejemplo

Limitaciones

  • El valor de las columnas solamente pueden ser texto plano, no se procesarán por ejemplo 'columnName:html'
  • Para cambiar fuentes y colores se debe editar el código de la extensión. Se debe buscar las funciones renderTableHeader y renderTableBody en ext.pdfGrid.EPdfGrid
1 1
10 followers
2 014 downloads
Yii Version: 1.1
License: BSD-2-Clause
Category: Others
Tags: fpdf, grid, PDF
Developed by: Nelson Otazo
Created on: Sep 18, 2012
Last updated: 12 years ago

Downloads

show all

Related Extensions