如何在我们使用Yii2中的export kartik下载的文档中添加标题?
我想在导出的文件中添加标题。 我正在Yii2中使用如何在我们使用Yii2中的export kartik下载的文档中添加标题?,yii,yii2,export,kartik-v,Yii,Yii2,Export,Kartik V,我想在导出的文件中添加标题。 我正在Yii2中使用kartik Export。我预期的结果如下: 以下是我的看法: 谁能帮我找到解决办法吗?这对我有很大帮助。提前谢谢这可不太容易。如果您只想将文本放在PDF标题中,请尝试: echo ExportMenu::widget([ 'dataProvider' => $dataProvider, 'columns' => $gridColumns, 'filename' => 'Exported File'
kartik Export
。我预期的结果如下:
以下是我的看法:
谁能帮我找到解决办法吗?这对我有很大帮助。提前谢谢这可不太容易。如果您只想将文本放在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
并覆盖renderpf()
如下:
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();
}
}
类MyExportMenu扩展\kartik\export\ExportMenu
{
受保护的函数renderPDF($file)
{
//默认PDF纸张大小
$excel=$this->_objPHPExcel;
$sheet=$this->_objPHPExcelSheet;
/**
*@var\PHPExcel\u Writer\u HTML$w
*/
$w=$this->_objPHPExcelWriter;
$page=$sheet->getPageSetup();
$orientation=$page->getOrientation()==PHPExcel_工作表_页面设置::orientation_横向?'L':'P';
$properties=$excel->getProperties();
$settings=ArrayHelper::getValue($this->exportConfig,$this->\u exportType,[]);
$useInlineCss=ArrayHelper::getValue($settings,'useInlineCss',false);
$config=ArrayHelper::getValue($settings,'pdfConfig',[]);
$w->setUseInlineCss($useInlineCss);
$config=array\u replace\u递归(
[
“方向”=>strtoupper($orientation),
“方法”=>[
'SetTitle'=>$properties->getTitle(),
'SetAuthor'=>$properties->getCreator(),
“SetCreator”=>$properties->getCreator(),
“SetSubject”=>$properties->getSubject(),
'SetKeywords'=>$properties->getKeywords(),
],
“cssFile'=>”,
'content'=>'您的标题在这里'//generateHTMLHeader(false)
.$w->generateSheetData()
.$w->generateHTMLFooter(),
],
$config
);
如果(!$this->stream){
$config['destination']=Pdf::DEST_文件;
$config['filename']=$file;
}否则{
$config['destination']=Pdf::DEST_下载;
$extension=ArrayHelper::getValue($settings,'extension','pdf');
$config['filename']=$this->filename.'..$扩展名;
}
$pdf=新pdf($config);
echo$pdf->render();
}
}
然后你必须使用你的类来代替。我不能100%确定它是否有效,没有经过测试。这并不是非常简单。如果您只想将文本放在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
并覆盖renderpf()
如下:
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();
}
}
类MyExportMenu扩展\kartik\export\ExportMenu
{
受保护的函数renderPDF($file)
{
//默认PDF纸张大小
$excel=$this->_objPHPExcel;
$sheet=$this->_objPHPExcelSheet;
/**
*@var\PHPExcel\u Writer\u HTML$w
*/
$w=$this->_objPHPExcelWriter;
$page=$sheet->getPageSetup();
$orientation=$page->getOrientation()==PHPExcel_工作表_页面设置::orientation_横向?'L':'P';
$properties=$excel->getProperties();
$settings=ArrayHelper::getValue($this->exportConfig,$this->\u exportType,[]);
$useInlineCss=ArrayHelper::getValue($settings,'useInlineCss',false);
$config=ArrayHelper::getValue($settings,'pdfConfig',[]);
$w->setUseInlineCss($useInlineCss);
$config=array\u replace\u递归(
[
“方向”=>strtoupper($orientation),
“方法”=>[
'SetTitle'=>$properties->getTitle(),
'SetAuthor'=>$properties->getCreator(),
“SetCreator”=>$properties->getCreator(),
“SetSubject”=>$properties->getSubject(),
'SetKeywords'=>$properties->getKeywords(),
],
“cssFile'=>”,
'content'=>'您的标题在这里'//generateHTMLHeader(false)
.$w->generateSheetData()
.$w->generateHTMLFooter(),
],
$config
);
如果(!$this->stream){
$config['destination']=Pdf::DEST_文件;
$config['filename']=$file;
}否则{
$config['destination']=Pdf::DEST_下载;
$extension=ArrayHelper::getValue($settings,'extension','pdf');
$config['filename']=$this->filename.'..$扩展名;
}
$pdf=新pdf($config);
echo$pdf->render();
}
}
然后你必须使用你的类来代替。我不能100%确定它是否有效,没有经过测试。谢谢你的回答。顺便说一句,你能看看我的问题吗?我想导出一个文档中的所有表谢谢你的回答。顺便说一句,你能看看我的问题吗?我想导出一个文档中的所有表