/** * Get document content * * @param \PhpOffice\PhpPresentation\PhpPresentation $PhpPresentation * @param string $writerName * @return \PhpOffice\PhpPresentation\Tests\XmlDocument */ public static function getDocument(PhpPresentation $phpPresentation, $writerName = 'PowerPoint2007') { self::$file = tempnam(sys_get_temp_dir(), 'PhpPresentation'); if (!is_dir(sys_get_temp_dir() . '/PhpPresentation_Unit_Test/')) { mkdir(sys_get_temp_dir() . '/PhpPresentation_Unit_Test/'); } $xmlWriter = IOFactory::createWriter($phpPresentation, $writerName); $xmlWriter->save(self::$file); $zip = new \ZipArchive(); $res = $zip->open(self::$file); if ($res === true) { $zip->extractTo(sys_get_temp_dir() . '/PhpPresentation_Unit_Test/'); $zip->close(); } return new XmlDocument(sys_get_temp_dir() . '/PhpPresentation_Unit_Test/'); }
/** * Write documents * * @param \PhpOffice\PhpPresentation\PhpPresentation $phpPresentation * @param string $filename * @param array $writers */ function write($phpPresentation, $filename, $writers) { $result = ''; // Write documents foreach ($writers as $writer => $extension) { $result .= date('H:i:s') . " Write to {$writer} format"; if (!is_null($extension)) { $xmlWriter = IOFactory::createWriter($phpPresentation, $writer); $xmlWriter->save(__DIR__ . "/{$filename}.{$extension}"); rename(__DIR__ . "/{$filename}.{$extension}", __DIR__ . "/results/{$filename}.{$extension}"); } else { $result .= ' ... NOT DONE!'; } $result .= EOL; } $result .= getEndingNotes($writers); return $result; }
$objPHPPresentation = new PhpPresentation(); // Set properties echo date('H:i:s') . ' Set properties' . EOL; $objPHPPresentation->getProperties()->setCreator('PHPOffice')->setLastModifiedBy('PHPPresentation Team')->setTitle('Sample 03 Title')->setSubject('Sample 03 Subject')->setDescription('Sample 03 Description')->setKeywords('office 2007 openxml libreoffice odt php')->setCategory('Sample Category'); // Create slide echo date('H:i:s') . ' Create slide' . EOL; $currentSlide = $objPHPPresentation->getActiveSlide(); // Create a shape (drawing) echo date('H:i:s') . ' Create a shape (drawing)' . EOL; $shape = $currentSlide->createDrawingShape(); $shape->setName('PHPPresentation logo')->setDescription('PHPPresentation logo')->setPath('./resources/phppowerpoint_logo.gif')->setHeight(36)->setOffsetX(10)->setOffsetY(10); $shape->getShadow()->setVisible(true)->setDirection(45)->setDistance(10); // Create a shape (text) echo date('H:i:s') . ' Create a shape (rich text)' . EOL; $shape = $currentSlide->createRichTextShape()->setHeight(300)->setWidth(600)->setOffsetX(170)->setOffsetY(180); $shape->getActiveParagraph()->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER); $textRun = $shape->createTextRun('Thank you for using PHPPresentation!'); $textRun->getFont()->setBold(true)->setSize(60)->setColor(new Color('FFE06B20')); // Save serialized file $basename = basename(__FILE__, '.php'); echo date('H:i:s') . ' Write to serialized format' . EOL; $objWriter = IOFactory::createWriter($objPHPPresentation, 'Serialized'); $objWriter->save('results/' . basename(__FILE__, '.php') . '.phppt'); // Read from serialized file echo date('H:i:s') . ' Read from serialized format' . EOL; $objPHPPresentationLoaded = IOFactory::load('results/' . basename(__FILE__, '.php') . '.phppt'); // Save file echo write($objPHPPresentationLoaded, basename(__FILE__, '.php'), $writers); if (!CLI) { include_once 'Sample_Footer.php'; }
/** * Test create writer */ public function testCreateWriter() { $class = 'PhpOffice\\PhpPresentation\\Writer\\PowerPoint2007'; $this->assertInstanceOf($class, IOFactory::createWriter(new PhpPresentation())); }