4

I want to know if there is a way to create a ppt file with pre defined width and height rather than default one.

theduck
  • 2,589
  • 13
  • 17
  • 23
KA.
  • 4,220
  • 5
  • 26
  • 37
  • Please would you show what you have tried? – Suleman Ahmad Nov 12 '13 at 09:34
  • 2
    Have you checked `PHPPowerPoint_DocumentLayout::setDocumentLayout`, `PHPPowerPoint_DocumentLayout::setLayoutXmilli` or `PHPPowerPoint_DocumentLayout::setLayoutYmilli`? [Their source code can be found here](https://github.com/PHPOffice/PHPPowerPoint/blob/master/Classes/PHPPowerPoint/DocumentLayout.php) – h2ooooooo Nov 12 '13 at 09:41

3 Answers3

4

I've used this code to set it for the new PHPPresentation (newer PHPPowerpoint version). Hope it helps..(replace path's with your phppresentation path's and width(1180) and height(768) to suit yours

/*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);
Shawn Mehan
  • 4,513
  • 9
  • 31
  • 51
Vinu
  • 89
  • 5
2

The answer of @user2633993 is still valid, though the code for setting the layout width and height has changed a bit, now you need to set an array containing the cx and cy keys, their values doesn't matter.

So the code needs to look something like this:

$objPHPPowerPoint->getLayout()->setDocumentLayout(['cx' => 1280, 'cy' => 700], true)
        ->setCX(1280, DocumentLayout::UNIT_PIXEL)
        ->setCY(700, DocumentLayout::UNIT_PIXEL);`
gkubed
  • 1,849
  • 3
  • 32
  • 45
0

you can set width and height:

Please see this tutorial

$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__));
Suleman Ahmad
  • 2,025
  • 4
  • 28
  • 43