2017-08-07 65 views
0

我正在使用mpdf擴展來生成pdf文件。我已經在配置文件中爲mpdf設置了全局設置,因此每當我想從我的控制器操作中生成PDF時,我都可以調用該函數。但是,由於在全局設置中設置的默認方向爲portrait,我發現很難使用需要橫向方向的數據更改pdf的方向。下面是代碼:Yii2:在控制器操作中覆蓋mpdf的全局pdf方向設置

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(); 
} 

所以我需要幫助重寫'orientation' => Pdf::ORIENT_PORTRAIT,設置是全局設置:在全局設置

'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調用全局設置

main.pdf代碼main.php文件來自控制器操作。

回答

0

您需要通過addPage添加內容。所以如果你建立一個頁面數組,你可以指定每個頁面的方向。

<?php 

$mpdf = new mPDF('', 'Legal'); 
$mpdf->WriteHTML(' 
    Hello World 
'); 

$mpdf->AddPage('L'); // Adds a new page in Landscape orientation 

$mpdf->WriteHTML(' 
    Hello World 
'); 

$mpdf->Output(); 

?> 
+0

嘿,夥計,是yii2框架真的嗎? – japheth

+0

Yii2只是一個框架,PDF創建由(在這種情況下)mPDF完成。所以不,不是。但是你正在使用mPDF,這是(我假設)以某種方式在Yii中實現的。因此,檢查是否有可用的功能(如**'AddPage'**)並從此工作可能會有所幫助。 – sbrn

+0

其實我試過,但它是拋出一個錯誤,這樣的功能不可用。感謝您的輸入。 – japheth

0

嘗試加入這一行這樣的:

$pdf = Yii::$app->pdf; 
$pdf->orientation = Pdf::ORIENT_LANDSCAPE; 
+0

不幸的是,這不起作用; – japheth

相關問題