2017-07-27 106 views

回答

0

這不是很容易。如果你只是想在PDF的頭球嘗試你的文字:

echo ExportMenu::widget([ 
    'dataProvider' => $dataProvider, 
    'columns' => $gridColumns, 
    'filename' => 'Exported File', 
    'fontAwesome' => true, 
    'exportConfig' => [ 
     ExportMenu::FORMAT_PDF => [ 
      'pdfConfig' => [ 
       'methods' => [ 
        'SetHeader' => ['Your Title Here'], 
       ], 
      ], 
     ], 
    ], 
]); 

但是,如果你想要在PDF的身體我想你必須擴展kartik\export\ExportMenu和覆蓋renderPDF(),如:

class MyExportMenu extends \kartik\export\ExportMenu 
{ 
    protected function renderPDF($file) 
    { 
     // Default PDF paper size 
     $excel = $this->_objPHPExcel; 
     $sheet = $this->_objPHPExcelSheet; 
     /** 
     * @var \PHPExcel_Writer_HTML $w 
     */ 
     $w = $this->_objPHPExcelWriter; 
     $page = $sheet->getPageSetup(); 
     $orientation = $page->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE ? 'L' : 'P'; 
     $properties = $excel->getProperties(); 
     $settings = ArrayHelper::getValue($this->exportConfig, $this->_exportType, []); 
     $useInlineCss = ArrayHelper::getValue($settings, 'useInlineCss', false); 
     $config = ArrayHelper::getValue($settings, 'pdfConfig', []); 
     $w->setUseInlineCss($useInlineCss); 
     $config = array_replace_recursive(
      [ 
       'orientation' => strtoupper($orientation), 
       'methods' => [ 
        'SetTitle' => $properties->getTitle(), 
        'SetAuthor' => $properties->getCreator(), 
        'SetCreator' => $properties->getCreator(), 
        'SetSubject' => $properties->getSubject(), 
        'SetKeywords' => $properties->getKeywords(), 
       ], 
       'cssFile' => '', 
       'content' => '<h1>Your Title Here</h1>' // <- title here 
        . $w->generateHTMLHeader(false) 
        . $w->generateSheetData() 
        . $w->generateHTMLFooter(), 
      ], 
      $config 
     ); 
     if (!$this->stream) { 
      $config['destination'] = Pdf::DEST_FILE; 
      $config['filename'] = $file; 
     } else { 
      $config['destination'] = Pdf::DEST_DOWNLOAD; 
      $extension = ArrayHelper::getValue($settings, 'extension', 'pdf'); 
      $config['filename'] = $this->filename . '.' . $extension; 
     } 
     $pdf = new Pdf($config); 
     echo $pdf->render(); 
    } 
} 

然後,你得改爲使用你的班級。我不是100%確定它的工作原理,沒有經過測試。

+0

謝謝你的回答。順便說一句,請你看看我的問題在https://stackoverflow.com/questions/45319792/yii2-export-kartik-v?我想在一個文檔中導出所有表格 – r34627673

+0

我試過了上面的代碼,但沒有工作 – r34627673

相關問題