J'utilise l'extension mpdf pour générer des fichiers PDF. J'ai défini les paramètres globaux pour le mpdf dans le fichier de configuration, donc je suis capable d'appeler la fonction chaque fois que je veux générer un pdf à partir de mon action de contrôleur. Cependant, j'ai du mal à changer l'orientation pour le pdf avec des données qui nécessitent une orientation paysage puisque l'orientation par défaut définie dans les paramètres globaux est portrait
. Voici les codes:Yii2: Remplacer les paramètres d'orientation PDF globaux pour mpdf dans l'action du contrôleur
Code main.pdf
pour le paramètre global
'pdf' => [
'class' => Pdf::classname(),
'mode' => Pdf::MODE_UTF8, // leaner size using standard fonts
'format' => Pdf::FORMAT_A4,
'orientation' => Pdf::ORIENT_PORTRAIT,
'destination' => Pdf::DEST_BROWSER,
'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}',
'options' => [
'shrink_tables_to_fit' => 0
],
// refer settings section for all configuration options
],
Controller Action
appeler les paramètres globaux:
public function actionReservationsList()
{
$searchModel = new ReservationsSearch();
$dataProvider = $searchModel->search(Yii::$app->session->get('repquery'));
$dataProvider->pagination = false;
$pdf = Yii::$app->pdf;
$pdf->content = $this->renderPartial('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
$pdf->methods = [
'SetHeader' => [Yii::$app->user->identity->company->name.'||Date: ' . date("r")],
'SetFooter' => ['User: '.Yii::$app->user->identity->username.'||Page {PAGENO}'],
];
return $pdf->render();
}
Je besoin d'aide pour écraser le paramètre 'orientation' => Pdf::ORIENT_PORTRAIT,
qui est dans les paramètres globaux main.php
fichier de l'action du contrôleur.
Hey mec, est-ce yii2 cadre vraiment? – japheth
Yii2 est juste un cadre, la création de PDF est faite par (dans ce cas) mPDF. Donc non, ce n'est pas le cas. Mais vous utilisez mPDF qui est (je suppose) implémenté dans Yii d'une certaine manière. Il peut donc être utile de vérifier si vous avez des fonctions disponibles comme ** 'AddPage' ** et de travailler à partir de là. – sbrn
En fait, j'ai essayé, mais il est une erreur que cette fonction n'est pas disponible. Merci tout de même pour ta contribution. – japheth