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);
Другие вопросы по тегам