PHPPowerpoint устанавливает высоту ширины слайда
Я хочу знать, есть ли способ создать файл ppt с заранее заданными шириной и высотой, а не по умолчанию.
Спасибо, Киран
3 ответа
Я использовал этот код, чтобы установить его для новой PHPPresentation (более новой версии PHPPowerpoint). Надеюсь, это поможет..(замените путь на ваш путь phppresentation и width(1180)
а также height(768)
в соответствии с вашими
/*Standard library loaders */
require_once 'include/Common/src/Common/Autoloader.php';
\PhpOffice\Common\Autoloader::register();
require_once 'include/PHPPowerPoint2/src/PhpPresentation/Autoloader.php';
\PhpOffice\PhpPresentation\Autoloader::register();
/*Standard library loaders */
use PhpOffice\PhpPresentation\PhpPresentation;
use PhpOffice\PhpPresentation\DocumentLayout;
$objPHPPowerPoint = new PhpPresentation();
$objPHPPowerPoint->getLayout()->setDocumentLayout(DocumentLayout::LAYOUT_CUSTOM, true)
->setCX( 1180, DocumentLayout::UNIT_PIXEL)
->setCY( 768, DocumentLayout::UNIT_PIXEL);
Ответ @user2633993 остается в силе, хотя код для установки ширины и высоты макета немного изменился, теперь вам нужно установить массив, содержащий cx
а также cy
ключи, их значения не имеют значения.
Поэтому код должен выглядеть примерно так:
$objPHPPowerPoint->getLayout()->setDocumentLayout(['cx' => 1280, 'cy' => 700], true)
->setCX(1280, DocumentLayout::UNIT_PIXEL)
->setCY(700, DocumentLayout::UNIT_PIXEL);`
Вы можете установить ширину и высоту:
Пожалуйста, посмотрите этот учебник
$objPHPPowerPoint = new PHPPowerPoint();
$currentSlide = $objPHPPowerPoint->getActiveSlide();
$shape = $currentSlide->createDrawingShape();
$shape = $currentSlide->createRichTextShape();
$shape->setHeight(300);
$shape->setWidth(600);
$shape->setOffsetX(170);
$shape->setOffsetY(180);
$shape->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_CENTER );
$textRun = $shape->createTextRun('Thank you for using PHPPowerPoint!');
$textRun->getFont()->setBold(true);
$textRun->getFont()->setSize(60);
$textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FFC00000' ) );
$objWriter = PHPPowerPoint_IOFactory::createWriter($objPHPPowerPoint, 'PowerPoint2007');
$objWriter->save(str_replace('.php', '.pptx', __FILE__));
В последней версии (v0.9.0) вам больше не нужно указывать массив как @user2962785. Достаточно следующего (пример для книжного формата A0)
$objPHPPowerPoint->getLayout()
->setCX(841, DocumentLayout::UNIT_MILLIMETER)
->setCY(1189, DocumentLayout::UNIT_MILLIMETER);