如何在Yii2中使用导出kartik下载的文档中添加标题?

问题描述:

我想在导出的文件中添加标题。我使用kartik Export in Yii2。我希望结果是这样的:如何在Yii2中使用导出kartik下载的文档中添加标题?

enter image description here

这是我的观点: https://pastebin.com/HDeuQnfj

任何人都可以请帮我找到解决办法?它会帮助我很多。在此先感谢

这不是很容易。如果你只是想在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://*.com/questions/45319792/yii2-export-kartik-v?我想在一个文档中导出所有表格 – r34627673

+0

我试过了上面的代码,但没有工作 – r34627673