2016-04-25 26 views
0

功能* 这个函数是从ajax获取数据后调用它的函数调用其中的一个文件在这里我显示的是来自数据库的数据。这个文件的所有css部分在style标签中使用,因为它是样式标签在PDF PRIND为文本,如果这一切CSS文件包括CSS文件夹,然后PDF是不正确的格式创建如何在yii2中创建PDF时创建css?

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

哪个PDF库使用? – GAMITG

+0

在yii2添加使用kartik \ mpdf \ Pdf; –

回答

0

随着demo种状态:

任何<style>标签将被跳过(必须使用cssInline属性用于此)

如果您只有几个款式添加到PDF,你可以通过它像这样:

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

但是,如果你有很多的款式,你也可以考虑默认cssFile改为你想用正确的CSS的任何文件。 (默认情况下,该属性是@vendor/kartik-v/yii2-mpdf/assets/bootstrap.min.css