php tutorial Comment définir css au moment de la création de PDF dans yii2?



yii openclassroom (1)

Pdf fuction * Cette fonction est appelée depuis ajax après avoir récupéré les données de cette fonction. Elle est appelée par un fichier ici. Les données affichées proviennent de la base de données. un texte et si ce fichier css inclus dans le dossier css alors pdf n'est pas créer dans le bon format

public function actionInvoicespacking(){ 
    $pdf = Yii::$app->pdf;
    $modelShipment = Shipment::find()->orderBy('ship_id DESC')->one();
    if(count($modelShipment) == 0) {

      $shipid= 1;
    } else 
    {
     $shipid= $modelShipment->ship_id;

   }
   $htmlContent = file_get_contents('http://localhost/shepherdlogistics_v1.0/backend/views/shipment/invoicespackingdata.php');
   $pdf->content = $htmlContent;
   return $pdf->render();

 }

invoicespackingdata.php

<!DOCTYPE html>
<html lang="en">

<head>
    <title>Invoice</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="css/bootstrap.fontawesome.min.css">
    <link rel="stylesheet" href="css/stylepdf.css">
    <script src="js/jquery.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <style type="text/css">
    body {
        font-size: 18px;
        font-family: cambria;
    }

    .nopadd {
        padding: 0px;
    }
    </style>
</head>

<body>
    <div class="container">
        <br>
        <br>
        <div class="">
            <div class="col-lg-2 nopadd">
                <img src="logopdf.png" alt="logo" width="100%">
            </div>
            <div class="col-lg-10">
                <h1 style="font-size: 55px;font-weight: bold; padding: 23px 0px;">
                SHEPHERD LOGISTICS CO. W.L.L.</h1>
            </div>
        </div>
</div>
</div>

Comme la démo déclare:

Toute <style> sera ignorée (vous devez utiliser la propriété cssInline pour cela)

Si vous avez juste quelques styles à ajouter au pdf, vous pouvez le passer comme ceci:

$pdf->content = $htmlContent;
$pdf->cssInline = '.class1 {color: red} .class2 {color:blue}';

Mais si vous avez beaucoup de styles, vous pouvez également envisager de changer le fichier cssFile par défaut pour tout fichier que vous voulez avec le bon CSS. (par défaut, cette propriété est @vendor/kartik-v/yii2-mpdf/assets/bootstrap.min.css





yii2