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
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