- Lo primero que hacemos es bajarnos la ultima versión de MPDF de su pagina oficial http://www.mpdf1.com/mpdf/ y la colocamos en protected/extensions
- Copiamos en el controlador de la tabla a la que se hará el reporte la siguiente función:
public function actionPdf($id) { $this->render('pdf',array( 'model'=>$this->loadModel($id), )); }
- Colocamos pdf en la funcion accessRules() del mismo controlador para que los usuarios puedan acceder a la acción
- En la vista admin sustituir el arreglo de los botones por el siguiente:
array( 'class'=>'CButtonColumn', 'template' => '{view} {update} {delete} {pdf}', 'buttons'=>array( 'pdf' => array( 'label'=>'Generar PDF', 'url'=>"CHtml::normalizeUrl(array('pdf', 'id'=>\$data->id))", 'imageUrl'=>Yii::app()->request->baseUrl.'/images/pdf_icon.png', 'options' => array('class'=>'pdf'), ), ), ),
- En la vista view agregamos la vista de nuestro pdf en el menu:
array('label'=>'Crear PDF', 'url'=>array('pdf','id'=>$model->id)),
- En mi caso la clave primaria del registro la puse como id en la base de datos, si en tu caso es "id_producto" o algo por el estilo debes cambiarlo cuando se pasa el dato a la vista.
- Y por ultimo tenemos el archivo pdf.php que estará en las vistas:
<?php $pdf = Yii::createComponent('application.extensions.MPDF52.mpdf'); $html=' <link rel="stylesheet" type="text/css" href="'.Yii::app()->request->baseUrl.'/css/pdf.css" /> <table id="yw0" class="detail-view2"> <tr class="principal"> <td colspan="2" align="center"><b>DATOS DEL CONTRATO</b></td> <tr> <tr class="odd"><td> <b>N° Control</b> </td><td> '.$model->num_control.'</td></tr> <tr class="even"><td> <b>Trimestre Ejecucion</b> </td><td> '.$model->trimestre_ejecucion.'</td></tr> <tr class="odd"><td> <b>Nombre Estado</b> </td><td> '.$model->estado0["nombre_estado"].'</td></tr> <tr class="even"><td> <b>Empresa</b> </td><td> '.$model->empresa.'</td></tr> <tr class="odd"><td> <b>Personal Actuante</b> </td><td> '.$model->personal_actuante.'</td></tr> <tr class="even"><td> <b>Nombre Tipo Informe</b> </td><td> '.$model->informe0["nombre_tipo_informe"].'</td></tr> <tr class="even"><td> <b>N° Contrato</b> </td><td> '.$model->num_contrato.'</td></tr> <tr class="odd"><td> <b>Monto Contratado</b> </td><td> '.$model->monto_contratado.'</td></tr> <tr class="even"><td> <b>Monto Auditado</b> </td><td> '.$model->monto_auditado.'</td></tr> <tr class="odd"><td> <b>Porcentaje Ejecucion</b> </td><td> '.$model->porcentaje.'</td></tr> <tr class="even"><td> <b>Objeto Contrato</b> </td><td> '.$model->objeto_contrato.'</td></tr> <tr class="odd"><td> <b>Observaciones</b> </td><td> '.$model->observaciones.'</td></tr> <tr class="even"><td> <b>Recomendaciones</b> </td><td> '.$model->recomendaciones.'</td></tr> <tr class="odd"><td> <b>Monto Hallazgo</b> </td><td> '.$model->monto_hallazgo.'</td></tr> <tr class="even"><td> <b>Origen Tramite</b> </td><td> '.$model->origen0["nombre_origen_tramite"].'</td></tr> </table> '; $mpdf=new mPDF('win-1252','LETTER','','',15,15,25,12,5,7); $mpdf->WriteHTML($html); $mpdf->Output('Ficha-Contrato-'.$model->num_control.'.pdf','D'); exit; ?>
- El icono del pdf se los dejo anexado.
Espero que les sea de mucha ayuda, mpdf es muy potente para encabezados y pie de pagina y la documentación está buenisima.
Twitter: @gabrielduarte77
Correo: gabrielduarte77@gmail.com
Otros Temas:
- Reportes en Yii a partir de una busqueda
Attached File(s)
-
pdf_icon.png (911bytes)
Number of downloads: 157