php - phppresentation溢出表问题
问题描述
随着单元格高度的增加,表格高度增加并使表格移到幻灯片之外,因此我希望表格被分开,并且外面的部分进入下一张幻灯片假设第 3 行在幻灯片之外,所以发送第 3下一张幻灯片中的行
<?php
include_once 'Sample_Header.php';
use PhpOffice\PhpPresentation\PhpPresentation;
use PhpOffice\PhpPresentation\Style\Border;
use PhpOffice\PhpPresentation\Style\Color;
use PhpOffice\PhpPresentation\Style\Fill;
// Create new PHPPresentation object
echo date('H:i:s') . ' Create new PHPPresentation object'.EOL;
$objPHPPresentation = new PhpPresentation();
// Set properties
echo date('H:i:s') . ' Set properties'.EOL;
$objPHPPresentation->getDocumentProperties()->setCreator('PHPOffice')
->setLastModifiedBy('PHPPresentation Team')
->setTitle('Sample 06 Title')
->setSubject('Sample 06 Subject')
->setDescription('Sample 06 Description')
->setKeywords('office 2007 openxml libreoffice odt php')
->setCategory('Sample Category');
// Remove first slide
echo date('H:i:s') . ' Remove first slide'.EOL;
$objPHPPresentation->removeSlideByIndex(0);
// Create slide
echo date('H:i:s') . ' Create slide'.EOL;
$currentSlide = createTemplatedSlide($objPHPPresentation);
// Create a shape (table)
echo date('H:i:s') . ' Create a shape (table)'.EOL;
$shape = $currentSlide->createTableShape(3);
$shape->setHeight(100);
$shape->setWidth(600);
$shape->setOffsetX(150);
$shape->setOffsetY(150);
// Add row
echo date('H:i:s') . ' Add row'.EOL;
$row = $shape->createRow();
$row->getFill()->setFillType(Fill::FILL_GRADIENT_LINEAR)
->setRotation(90)
->setStartColor(new Color('FFE06B20'))
->setEndColor(new Color('FFFFFFFF'));
$cell = $row->nextCell();
$cell->setColSpan(3);
$cell->createTextRun('askjbsakbcashbcashkbckashbkashhkasc')->getFont()->setBold(true)->setSize(16);
$cell->getBorders()->getBottom()->setLineWidth(4)
->setLineStyle(Border::LINE_SINGLE)
->setDashStyle(Border::DASH_DASH);
$cell->getActiveParagraph()->getAlignment()
->setMarginLeft(10);
// Add row
echo date('H:i:s') . ' Add row'.EOL;
$row = $shape->createRow();
$row->setHeight(20);
$row->getFill()->setFillType(Fill::FILL_GRADIENT_LINEAR)
->setRotation(90)
->setStartColor(new Color('FFE06B20'))
->setEndColor(new Color('FFFFFFFF'));
$oCell = $row->nextCell();
$oCell->createTextRun('jsdhfljadnfkljancfancjklscnajklnacsjlnsajlcnasjlcnasjlcnlasncjlasnclasncjlasncljasncjlasncljasnjsdhfljadnfkljancfancjklscnajklnacsjlnsajlcnasjlcnasjlcnlasncjlasnclasncjlasncljasncjlasncljasn')->getFont()->setBold(true);
$oCell->getActiveParagraph()->getAlignment()->setMarginLeft(20);
$oCell = $row->nextCell();
$oCell->createTextRun('jsdhfljadnfkljancfancjklscnajklnacsjlnsajlcnasjlcnasjlcnlasncjlasnclasncjlasncljasncjlasncljasnjsdhfljadnfkljancfancjklscnajklnacsjlnsajlcnasjlcnasjlcnlasncjlasnclasncjlasncljasncjlasncljasn')->getFont()->setBold(true);
$oCell = $row->nextCell();
$oCell->createTextRun('jsdhfljadnfkljancfancjklscnajklnacsjlnsajlcnasjlcnasjlcnlasncjlasnclasncjlasncljasncjlasncljasnjsdhfljadnfkljancfancjklscnajklnacsjlnsajlcnasjlcnasjlcnlasncjlasnclasncjlasncljasncjlasncljasn')->getFont()->setBold(true);
foreach ($row->getCells() as $cell) {
$cell->getBorders()->getTop()->setLineWidth(4)
->setLineStyle(Border::LINE_SINGLE)
->setDashStyle(Border::DASH_DASH);
// if($cell->getHeight()>20){
// $nextSlide = createTemplatedSlide($objPHPPresentation);
// }
}
$nextSlide = createTemplatedSlide($objPHPPresentation);
// Add row
echo date('H:i:s') . ' Add row'.EOL;
$row = $shape->createRow();
$row->getFill()->setFillType(Fill::FILL_SOLID)
->setStartColor(new Color('FFE06B20'))
->setEndColor(new Color('FFE06B20'));
$oCell = $row->nextCell();
$oCell->createTextRun('jsdhfljadnfkljancfancjklscnajklnacsjlnsajlcnasjlcnasjlcnlasncjlasnclasncjlasncljasncjlasncljasn');
$oCell->getActiveParagraph()->getAlignment()
->setMarginLeft(30)
->setTextDirection(\PhpOffice\PhpPresentation\Style\Alignment::TEXT_DIRECTION_VERTICAL_270);
$oCell = $row->nextCell();
$oCell->createTextRun('jsdhfljadnfkljancfancjklscnajklnacsjlnsajlcnasjlcnasjlcnlasncjlasnclasncjlasncljasncjlasncljasnvjsdhfljadnfkljancfancjklscnajklnacsjlnsajlcnasjlcnasjlcnlasncjlasnclasncjlasncljasncjlasncljasn ');
$oCell->getActiveParagraph()->getAlignment()
->setMarginBottom(10)
->setMarginTop(20)
->setMarginRight(30)
->setMarginLeft(40);
$oCell = $row->nextCell();
$oCell->createTextRun('vjsdhfljadnfkljancfancjklscnajklnacsjlnsajlcnasjlcnasjlcnlasncjlasnclasncjlasncljasncjlasncljasnjsdhfljadnfkljancfancjklscnajklnacsjlnsajlcnasjlcnasjlcnlasncjlasnclasncjlasncljasncjlasncljasn');
// Add row
echo date('H:i:s') . ' Add row'.EOL;
$row = $shape->createRow();
$row->getFill()->setFillType(Fill::FILL_SOLID)
->setStartColor(new Color('FFE06B20'))
->setEndColor(new Color('FFE06B20'));
$oCell = $row->nextCell();
$oCell->createTextRun('jsdhfljadnfkljancfancjklscnajklnacsjlnsajlcnasjlcnasjlcnlasncjlasnclasncjlasncljasncjlasncljasn');
$oCell->getActiveParagraph()->getAlignment()->setMarginLeft(40);
$oCell = $row->nextCell();
$oCell->createTextRun('jsdhfljadnfkljancfancjklscnajklnacsjlnsajlcnasjlcnasjlcnlasncjlasnclasncjlasncljasncjlasncljasn');
$oCell = $row->nextCell();
$oCell->createTextRun('jsdhfljadnfkljancfancjklscnajklnacsjlnsajlcnasjlcnasjlcnlasncjlasnclasncjlasncljasncjlasncljasn');
// Add row
echo date('H:i:s') . ' Add row'.EOL;
$row = $shape->createRow();
$row->getFill()->setFillType(Fill::FILL_SOLID)
->setStartColor(new Color('FFE06B20'))
->setEndColor(new Color('FFE06B20'));
$cellC1 = $row->nextCell();
$textRunC1 = $cellC1->createTextRun('Link');
$textRunC1->getHyperlink()->setUrl('https://github.com/PHPOffice/PHPPresentation/')->setTooltip('PHPPresentation');
$cellC1->getActiveParagraph()->getAlignment()->setMarginLeft(50);
$cellC2 = $row->nextCell();
$textRunC2 = $cellC2->createTextRun('jsdhfljadnfkljancfancjklscnajklnacsjlnsajlcnasjlcnasjlcnlasncjlasnclasncjlasncljasncjlasncljasn');
$textRunC2->getFont()->setBold(true);
$textRunC2->getFont()->setSize(12);
$textRunC2->getFont()->setColor(new Color('FF000000'));
$cellC2->createBreak();
$textRunC2 = $cellC2->createTextRun('jsdhfljadnfkljancfancjklscnajklnacsjlnsajlcnasjlcnasjlcnlasncjlasnclasncjlasncljasncjlasncljasn');
$textRunC2->getFont()->setBold(true);
$textRunC2->getFont()->setSize(14);
$textRunC2->getFont()->setColor(new Color('FF0088FF'));
$cellC3 = $row->nextCell();
$textRunC3 = $cellC3->createTextRun('Link jsdhfljadnfkljancfancjklscnajklnacsjlnsajlcnasjlcnasjlcnlasncjlasnclasncjlasncljasncjlasncljasn');
$textRunC3->getHyperlink()->setUrl('https://github.com')->setTooltip('GitHub');
$cellC3->createBreak();
$textRunC3 = $cellC3->createTextRun('Link Google');
$textRunC3->getHyperlink()->setUrl('https://google.com')->setTooltip('Google');
// Save file
echo write($objPHPPresentation, basename(__FILE__, '.php'), $writers);
if (!CLI) {
include_once 'Sample_Footer.php';
}
解决方案
[<?php
include_once 'Sample_Header.php';
use PhpOffice\PhpPresentation\PhpPresentation;
use PhpOffice\PhpPresentation\Style\Color;
use PhpOffice\PhpPresentation\Style\Fill;
// Create new PHPPresentation object
echo date('H:i:s') . ' Create new PHPPresentation object'.EOL;
$objPHPPresentation = new PhpPresentation();
// Set properties
echo date('H:i:s') . ' Set properties'.EOL;
$objPHPPresentation->getDocumentProperties()->setCreator('PHPOffice')
->setLastModifiedBy('PHPPresentation Team')
->setTitle('Sample 06 Title')
->setSubject('Sample 06 Subject')
->setDescription('Sample 06 Description')
->setKeywords('office 2007 openxml libreoffice odt php')
->setCategory('Sample Category');
// Remove first slide
echo date('H:i:s') . ' Remove first slide'.EOL;
$objPHPPresentation->removeSlideByIndex(0);
// Create slide
echo date('H:i:s') . ' Create slide'.EOL;
$currentSlide = createTemplatedSlide($objPHPPresentation);
// Create a shape (table)
echo date('H:i:s') . ' Create a shape (table)'.EOL;
$shape = $currentSlide->createTableShape(3);
$shape->setHeight(100);
$shape->setWidth(600);
$shape->setOffsetX(150);
$shape->setOffsetY(150);
//info comming ftom database
$info = "abcdef";
$total = 0;
$rows = 0;
for($var=0;$var<50;$var++)
{
// Add row
$row+=1;
addData();
echo date('H:i:s') . ' Add row'.EOL.$total;
}
function addData(){
global $total,$info,$objPHPPresentation,$shape;
compare($objPHPPresentation);
$row = $shape->createRow();
$row->getFill()->setFillType(Fill::FILL_SOLID)
->setStartColor(new Color('FFE06B20'))
->setEndColor(new Color('FFE06B20'));
$oCell = $row->nextCell();
$oCell->createTextRun($info);
$total += strlen($info);
$oCell->getActiveParagraph()->getAlignment()
->setMarginLeft(30)
->setTextDirection(\PhpOffice\PhpPresentation\Style\Alignment::TEXT_DIRECTION_VERTICAL_270);
$oCell = $row->nextCell();
$oCell->createTextRun($info);
$total += strlen($info);
$oCell->getActiveParagraph()->getAlignment()
->setMarginBottom(10)
->setMarginTop(20)
->setMarginRight(30)
->setMarginLeft(40);
$oCell = $row->nextCell();
$oCell->createTextRun($info);
$total += strlen($info);
}
function compare(){
global $total,$objPHPPresentation,$shape,$row;
if(!($total<180 && $row<12)){
echo date('H:i:s') . ' Create slide'.EOL;
$currentSlide = createTemplatedSlide($objPHPPresentation);
echo date('H:i:s') . ' Create a shape (table)'.EOL;
$shape = $currentSlide->createTableShape(3);
$shape->setHeight(100);
$shape->setWidth(600);
$shape->setOffsetX(150);
$shape->setOffsetY(150);
$total = 0;
$row = 0;
}
}
// Save file
echo write($objPHPPresentation, basename(__FILE__, '.php'), $writers);
if (!CLI) {
include_once 'Sample_Footer.php';
}][1]
推荐阅读
- php - openpgp-php 无法解密来自其他客户端的密文
- web-services - 通过 web 服务登录 prestashop 1.7
- python - 在执行当前脚本之前运行 python 脚本
- c# - V5R4 上 iSeries 的 .NET 数据提供程序
- ios - 2 架构 arm64 的重复符号
- apache-kafka - Kafka Streams:处理来自不同分区的消息时的事件时间偏差
- css - 为什么我不能在我的 ionic vue 组件中使用 css 类选择器更改 ion-header 的背景颜色?
- sql-server - 如何使用 BCP 添加双引号文本分隔符
- c# - 在同一解决方案中,依赖项目的 .Net 框架低于其依赖项目
- c++ - wxWidgets:位图顶部带有标签的 wxButton