En varios post dicen como se hace un reporte de todo el admin, pero no explican muy bien como hacer un reporte por id.
Descarga el yii-pdf y lo pones en la carpeta extensions
Descargas el mpdf y lo descomprimes en una carpeta llamada vendor
en el config main pones lo siguiente
'ePdf' => array(
'class' => 'ext.yii-pdf.EYiiPdf',
'params' => array(
'mpdf'=> array(
'librarySourcePath' => 'application.vendor.mpdf.*',
'constants'=> array(
'_MPDF_TEMP_PATH' => Yii::getPathOfAlias('application.runtime'),
),
'class'=>'mpdf', // the literal class filename to be loaded from the vendors folder
/*'defaultParams' => array( // More info: http://mpdf1.com/manual/index.php?tid=184
'mode' => '', // This parameter specifies the mode of the new document.
'format' => 'A4', // format A4, A5, ...
'default_font_size' => 0, // Sets the default document font size in points (pt)
'default_font' => '', // Sets the default font-family for the new document.
'mgl' => 15, // margin_left. Sets the page margins for the new document.
'mgr' => 15, // margin_right
'mgt' => 16, // margin_top
'mgb' => 16, // margin_bottom
'mgh' => 9, // margin_header
'mgf' => 9, // margin_footer
'orientation' => 'P', // landscape or portrait orientation
)*/
)
)),
En el controlador poner este código y ponerlo en el access rules también
public function actionPdf($id)
{
$model=$this->loadModel($id);
$mPDF1 = Yii::app()->ePdf->mpdf('utf-8','A4','','',15,15,35,25,9,9,'P');
$mPDF1->useOnlyCoreFonts = true;
$mPDF1->SetTitle("xxxxxxxxxx - Reporte");
$mPDF1->SetAuthor("");
$mPDF1->watermark_font = 'DejaVuSansCondensed';
$mPDF1->watermarkTextAlpha = 0.1;
$mPDF1->SetDisplayMode('fullpage');
$mPDF1->WriteHTML($this->renderPartial('pdf',array(
'model'=>$this->loadModel($id),
),true));
$mPDF1->Output('Reporte_'.date('YmdHis'),'I');
exit;
}
'actions'=>array('admin','delete','create','update', 'index','view','Pdf', 'GenerarPdf'),
En el admin poner esto
array(
'class'=>'CButtonColumn',
'header'=>'Acciones',
//'deleteConfirmation'=>'¿Esta seguro que desea borrar el registro seleccionado?',
//Para las imagenes
'viewButtonImageUrl'=>Yii::app()->request->baseUrl.'/images/021.png',
'updateButtonImageUrl'=>Yii::app()->request->baseUrl.'/images/017.png',
'deleteButtonImageUrl'=>Yii::app()->request->baseUrl.'/images/004.png',
'htmlOptions'=>array('style'=>'width:100px!important'),
'headerHtmlOptions'=>array('style'=>'width:100px!important'),
'template'=>'{delete} {update} {view} {pdf}',
'buttons'=>array
(
'view' => array
(
'label'=>'Ver',
'url'=>'Yii::app()->createUrl("tutelas/view", array("id"=>$data->Idxx))',
),
'pdf' => array(
'label'=>'Ver Tutela',
'url'=>"CHtml::normalizeUrl(array('pdf', 'id'=>\$data->Id_xxx))",
'imageUrl'=>Yii::app()->request->baseUrl.'/images/pdf.png',
'options' => array('class'=>'pdf','target'=>'_blank'),
),
)
),
Crear en la misma carpeta una vista llamada pdf, esta contendrá lo siguiente
<!DOCTYPE html>
<html lang="en">
<head>
<style>
body {
font-family: "Aparajita";
font-size: 10pt;
}
.ppal{
padding-top: 25px;
}
</style>
</head>
<body class="ppal">
<!--mpdf
<htmlpageheader name="myheader">
</htmlpageheader>
<htmlpagefooter name="myfooter">
</htmlpagefooter>
<sethtmlpageheader name="myheader" value="on" show-this-page="1" />
<sethtmlpagefooter name="myfooter" value="on" />
mpdf-->
<table class="">
<tr><td> <b>Juez <?php echo $model->tbl_juzgados->Nombre_juz; ?> de la ciudad de <?php echo $model->Ciudad; ?></b></td></tr>
<tr><td> <b>E. S. D. </td></tr>
</table>
<br>
</body>
</html>
Espero que les sirva de algo
Hasta la próxima