pdf

Salve a tutti, qualcuno può cortesemente darmi qualche indicazione su come gererare un report in PDF leggendo i dati da una tabella MySQL utilizzando estensione mpdf.

Grazie infinite

Ciao Robi,

Premetto che non ho mai utilizzato l’estensione in oggetto ma leggendo la doc su github (kartik-v/yii2-mpdf) ti basta crearti un action nel controller ad-hoc, istanziare il componente, passargli il contenuto di una view che ha recuperato e stampato i dati recuperati da un modello ( quindi una tabella MySQL ) e chiaramare il metodo render del component.

Nel dettaglio nel tuo controller:

prima importi la libreria con:


use kartik\mpdf\Pdf;

crei la tua action:




public function actionPdf() {

    

    //modello per recuperare i dati dal database

    $model = new TuoModello();


    //View che conterrà i dati

    $content = $this->renderPartial('_datiPDF', [

                'model' => $model,

            ]);


    // setup kartik\mpdf\Pdf component

    $pdf = new Pdf([

        // set to use core fonts only

        'mode' => Pdf::MODE_CORE, 

        // A4 paper format

        'format' => Pdf::FORMAT_A4, 

        // portrait orientation

        'orientation' => Pdf::ORIENT_PORTRAIT, 

        // stream to browser inline

        'destination' => Pdf::DEST_BROWSER, 

        // your html content input

        'content' => $content,  

        // format content from your own css file if needed or use the

        // enhanced bootstrap css built by Krajee for mPDF formatting 

        'cssFile' => '@vendor/kartik-v/yii2-mpdf/assets/kv-mpdf-bootstrap.min.css',

        // any css to be embedded if required

        'cssInline' => '.kv-heading-1{font-size:18px}', 

         // set mPDF properties on the fly

        'options' => ['title' => 'Titolo Mio PDF'],

         // call mPDF methods on the fly

        'methods' => [ 

            'SetHeader'=>['Header Mio PDF'], 

            'SetFooter'=>['{PAGENO}'],

        ]

    ]);


    // ritorno dell'pdf come output

    return $pdf->render(); 

}



e infine nella tua view ci metti html semplice con le property del modello, es:


<p>Ciao <?php echo $model->nome; ?> residente in via <?php echo $model->via; ?></p>



Paolo