使用mPDF在Yii中生成PDF

时间:2014-06-18 02:04:38

标签: javascript php ajax pdf yii

我在操作列中添加了一个aditional按钮,这样当我点击它时,我应该从该特定行获取pdf报告,但是我不断收到错误,例如"服务器无法找到指定的'视图'行动或有时我得到所有数据的控制台日志,但我没有获得下载文件的选项。

控制器:

public function actionPrintHistEma($id){
    $sql=Monitoreo::getSqlReportTest($id);
    $model=Yii::app()->db->createCommand($sql)->queryAll();
    $mPDF1 = Yii::app()->ePdf->mpdf();
    $mPDF1->WriteHTML($this->renderPartial('print', array('model'=>$model), true));
    $file_name= 'report_';
    $mPDF1->Output( $file_name,EYiiPdf::OUTPUT_TO_DOWNLOAD );
    exit;
}

型号:

public function getSqlReportTest($id){
    $sql="SELECT  mo.id,
                  mo.ema_id,
                  mo.temp_total,
                  mo.presion_est,
                  mo.hum_rel,
                  mo.fecha_hora,
                  mo.lluvia,
                  mo.velocidad,
                  mo.dir_grado,
                  mo.vol_bateria,
                  em.descripcion
          FROM monitoreo mo, ema em
          WHERE mo.ema_id = ".$id." AND em.id=".$id."
          ORDER BY mo.fecha_hora";
    return $sql;
}

管理视图(GridView的一部分):

'template'=>'{update}{gen_pdf}',
'buttons'=>array(
            'gen_pdf' => array
                                (
                                'label'=>'Generar Reporte',
                                'imageUrl'=>Yii::app()->request->baseUrl.'/images/icons/pdf.png',
                                'url'=>'$data->id',
                                'click'=>"function(){
                                    getPDFReport($(this).attr('href'));
                                    return false;
                                        }"
                                    ),
                )

使用Javascript:

function getPDFReport(id){
    <?php echo CHtml::ajax(array(
            'url'=> array('Ema/PrintHistEma'),
            'data'=> "js:{'id':id}",
            'type'=>'post',
            'dataType'=>'json',
            'success'=>"function(data){
                    document.location='".Yii::app()->baseUrl."/Ema/PrintHistEma?'+id;
            } ",
            ))?>;
    return false;
}

0 个答案:

没有答案