public function export() { $objPHPPowerPoint = new PHPPowerPoint(); $objPHPPowerPoint->getProperties()->setCreator("SensorSix"); $objPHPPowerPoint->getProperties()->setLastModifiedBy("SensorSix"); $currentSlide = $objPHPPowerPoint->getActiveSlide(); $this->buildTitleSlide($currentSlide); foreach ($this->roadmap->getOrderedRoadmapDecision() as $roadmap_decision) { $currentSlide = $objPHPPowerPoint->createSlide(); $this->buildSlide($currentSlide, $roadmap_decision->getDecision()); } $objWriter = PHPPowerPoint_IOFactory::createWriter($objPHPPowerPoint, 'PowerPoint2007'); $objWriter->save('php://output'); }
public function export() { $objPHPPowerPoint = new PHPPowerPoint(); $objPHPPowerPoint->getProperties()->setCreator("Maarten Balliauw"); $objPHPPowerPoint->getProperties()->setLastModifiedBy("Maarten Balliauw"); $currentSlide = $objPHPPowerPoint->getActiveSlide(); foreach ($this->posts as $post) { if (!$currentSlide) { $currentSlide = $objPHPPowerPoint->createSlide(); } $this->buildSlide($currentSlide, $post); $currentSlide = null; } $objWriter = PHPPowerPoint_IOFactory::createWriter($objPHPPowerPoint, 'PowerPoint2007'); $objWriter->save('php://output'); }
/** * Write Meta file to XML format * * @param PHPPowerPoint $pPHPPowerPoint * @return string XML Output * @throws Exception */ public function writeMeta(PHPPowerPoint $pPHPPowerPoint = null) { // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_MEMORY); } // XML header $objWriter->startDocument('1.0', 'UTF-8'); // office:document-meta $objWriter->startElement('office:document-meta'); $objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0'); $objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink'); $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/'); $objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0'); $objWriter->writeAttribute('xmlns:presentation', 'urn:oasis:names:tc:opendocument:xmlns:presentation:1.0'); $objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office'); $objWriter->writeAttribute('xmlns:smil', 'urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0'); $objWriter->writeAttribute('xmlns:anim', 'urn:oasis:names:tc:opendocument:xmlns:animation:1.0'); $objWriter->writeAttribute('xmlns:grddl', 'http://www.w3.org/2003/g/data-view#'); $objWriter->writeAttribute('xmlns:officeooo', 'http://openoffice.org/2009/office'); $objWriter->writeAttribute('xmlns:drawooo', 'http://openoffice.org/2010/draw'); $objWriter->writeAttribute('office:version', '1.2'); // office:meta $objWriter->startElement('office:meta'); // dc:creator $objWriter->writeElement('dc:creator', $pPHPPowerPoint->getProperties()->getLastModifiedBy()); // dc:date $objWriter->writeElement('dc:date', gmdate('Y-m-d\\TH:i:s.000', $pPHPPowerPoint->getProperties()->getModified())); // dc:description $objWriter->writeElement('dc:description', $pPHPPowerPoint->getProperties()->getDescription()); // dc:subject $objWriter->writeElement('dc:subject', $pPHPPowerPoint->getProperties()->getSubject()); // dc:title $objWriter->writeElement('dc:title', $pPHPPowerPoint->getProperties()->getTitle()); // meta:creation-date $objWriter->writeElement('meta:creation-date', gmdate('Y-m-d\\TH:i:s.000', $pPHPPowerPoint->getProperties()->getCreated())); // meta:initial-creator $objWriter->writeElement('meta:initial-creator', $pPHPPowerPoint->getProperties()->getCreator()); // meta:keyword $objWriter->writeElement('meta:keyword', $pPHPPowerPoint->getProperties()->getKeywords()); // @todo : Where these properties are written ? // $pPHPPowerPoint->getProperties()->getCategory() // $pPHPPowerPoint->getProperties()->getCompany() $objWriter->endElement(); $objWriter->endElement(); // Return return $objWriter->getData(); }
error_reporting(E_ALL); /** Include path **/ set_include_path(get_include_path() . PATH_SEPARATOR . '../Classes/'); /** PHPPowerPoint */ include 'PHPPowerPoint.php'; if (php_sapi_name() == 'cli' && empty($_SERVER['REMOTE_ADDR'])) { define('EOL', PHP_EOL); } else { define('EOL', '<br />'); } // Create new PHPPowerPoint object echo date('H:i:s') . ' Create new PHPPowerPoint object' . EOL; $objPHPPowerPoint = new PHPPowerPoint(); // Set properties echo date('H:i:s') . ' Set properties' . EOL; $objPHPPowerPoint->getProperties()->setCreator('Maarten Balliauw')->setLastModifiedBy('Maarten Balliauw')->setTitle('Office 2007 PPTX Test Document')->setSubject('Office 2007 PPTX Test Document')->setDescription('Test document for Office 2007 PPTX, generated using PHP classes.')->setKeywords('office 2007 openxml php')->setCategory('Test result file'); // Create slide echo date('H:i:s') . ' Create slide' . EOL; $currentSlide = $objPHPPowerPoint->getActiveSlide(); // Create a shape (drawing) echo date('H:i:s') . ' Create a shape (drawing)' . EOL; $shape = $currentSlide->createDrawingShape(); $shape->setName('PHPPowerPoint logo')->setDescription('PHPPowerPoint logo')->setPath('./images/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(PHPPowerPoint_Style_Alignment::HORIZONTAL_CENTER); $textRun = $shape->createTextRun('Thank you for using PHPPowerPoint!'); $textRun->getFont()->setBold(true)->setSize(60)->setColor(new PHPPowerPoint_Style_Color('FFC00000')); // Save PowerPoint 2007 file
/** * Write chart to XML format * * @param PHPPowerPoint $presentation * @param \PhpOffice\PhpPowerpoint\Shape\Chart $chart * @param string $tempName * @return string String output * @throws \Exception */ public function writeSpreadsheet(PHPPowerPoint $presentation, $chart, $tempName) { // Need output? if (!$chart->hasIncludedSpreadsheet()) { throw new \Exception('No spreadsheet output is required for the given chart.'); } // Verify \PHPExcel if (!class_exists('PHPExcel')) { throw new \Exception('PHPExcel has not been loaded. Include PHPExcel.php in your script, e.g. require_once \'PHPExcel.php\'.'); } // Create new spreadsheet $workbook = new \PHPExcel(); // Set properties $title = $chart->getTitle()->getText(); if (strlen($title) == 0) { $title = 'Chart'; } $workbook->getProperties()->setCreator($presentation->getProperties()->getCreator())->setLastModifiedBy($presentation->getProperties()->getLastModifiedBy())->setTitle($title); // Add chart data $sheet = $workbook->setActiveSheetIndex(0); $sheet->setTitle('Sheet1'); // Write series $seriesIndex = 0; foreach ($chart->getPlotArea()->getType()->getData() as $series) { // Title $sheet->setCellValueByColumnAndRow(1 + $seriesIndex, 1, $series->getTitle()); // X-axis $axisXData = array_keys($series->getValues()); for ($i = 0; $i < count($axisXData); $i++) { $sheet->setCellValueByColumnAndRow(0, $i + 2, $axisXData[$i]); } // Y-axis $axisYData = array_values($series->getValues()); for ($i = 0; $i < count($axisYData); $i++) { $sheet->setCellValueByColumnAndRow(1 + $seriesIndex, $i + 2, $axisYData[$i]); } ++$seriesIndex; } // Save to string $writer = \PHPExcel_IOFactory::createWriter($workbook, 'Excel2007'); $writer->save($tempName); // Load file in memory $returnValue = file_get_contents($tempName); @unlink($tempName); return $returnValue; }
/** * Write docProps/core.xml to XML format * * @param PHPPowerPoint $pPHPPowerPoint * @return string XML Output * @throws Exception */ public function writeDocPropsCore(PHPPowerPoint $pPHPPowerPoint = null) { // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_MEMORY); } // XML header $objWriter->startDocument('1.0', 'UTF-8', 'yes'); // cp:coreProperties $objWriter->startElement('cp:coreProperties'); $objWriter->writeAttribute('xmlns:cp', 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties'); $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/'); $objWriter->writeAttribute('xmlns:dcterms', 'http://purl.org/dc/terms/'); $objWriter->writeAttribute('xmlns:dcmitype', 'http://purl.org/dc/dcmitype/'); $objWriter->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance'); // dc:creator $objWriter->writeElement('dc:creator', $pPHPPowerPoint->getProperties()->getCreator()); // cp:lastModifiedBy $objWriter->writeElement('cp:lastModifiedBy', $pPHPPowerPoint->getProperties()->getLastModifiedBy()); // dcterms:created $objWriter->startElement('dcterms:created'); $objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF'); $objWriter->writeRaw(gmdate("Y-m-d\\TH:i:s\\Z", $pPHPPowerPoint->getProperties()->getCreated())); $objWriter->endElement(); // dcterms:modified $objWriter->startElement('dcterms:modified'); $objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF'); $objWriter->writeRaw(gmdate("Y-m-d\\TH:i:s\\Z", $pPHPPowerPoint->getProperties()->getModified())); $objWriter->endElement(); // dc:title $objWriter->writeElement('dc:title', $pPHPPowerPoint->getProperties()->getTitle()); // dc:description $objWriter->writeElement('dc:description', $pPHPPowerPoint->getProperties()->getDescription()); // dc:subject $objWriter->writeElement('dc:subject', $pPHPPowerPoint->getProperties()->getSubject()); // cp:keywords $objWriter->writeElement('cp:keywords', $pPHPPowerPoint->getProperties()->getKeywords()); // cp:category $objWriter->writeElement('cp:category', $pPHPPowerPoint->getProperties()->getCategory()); $objWriter->endElement(); // Return return $objWriter->getData(); }
* @copyright Copyright (c) 2009 - 2010 PHPPowerPoint (http://www.codeplex.com/PHPPowerPoint) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ /** Error reporting */ error_reporting(E_ALL); /** Include path **/ set_include_path(get_include_path() . PATH_SEPARATOR . '../Classes/'); /** PHPPowerPoint */ include 'PHPPowerPoint.php'; // Create new PHPPowerPoint object echo date('H:i:s') . " Create new PHPPowerPoint object\n"; $objPHPPowerPoint = new PHPPowerPoint(); // Set properties echo date('H:i:s') . " Set properties\n"; $objPHPPowerPoint->getProperties()->setCreator("Maarten Balliauw")->setLastModifiedBy("Maarten Balliauw")->setTitle("Office 2007 PPTX Test Document")->setSubject("Office 2007 PPTX Test Document")->setDescription("Test document for Office 2007 PPTX, generated using PHP classes.")->setKeywords("office 2007 openxml php")->setCategory("Test result file"); // Remove first slide echo date('H:i:s') . " Remove first slide\n"; $objPHPPowerPoint->removeSlideByIndex(0); // Create templated slide echo date('H:i:s') . " Create templated slide\n"; $currentSlide = createTemplatedSlide($objPHPPowerPoint); // local function // Generate sample data for first chart echo date('H:i:s') . " Generate sample data for first chart\n"; $series1Data = array('Jan' => 133, 'Feb' => 99, 'Mar' => 191, 'Apr' => 205, 'May' => 167, 'Jun' => 201, 'Jul' => 240, 'Aug' => 226, 'Sep' => 255, 'Oct' => 264, 'Nov' => 283, 'Dec' => 293); $series2Data = array('Jan' => 266, 'Feb' => 198, 'Mar' => 271, 'Apr' => 305, 'May' => 267, 'Jun' => 301, 'Jul' => 340, 'Aug' => 326, 'Sep' => 344, 'Oct' => 364, 'Nov' => 383, 'Dec' => 379); // Create a bar chart (that should be inserted in a shape) echo date('H:i:s') . " Create a bar chart (that should be inserted in a chart shape)\n"; $bar3DChart = new PHPPowerPoint_Shape_Chart_Type_Bar3D(); $series1 = new PHPPowerPoint_Shape_Chart_Series('2009', $series1Data);
function ppt_export_dots(&$dots, &$more) { $maps = array(); $w = 960; $h = 720; $ppt = new PHPPowerPoint(); $ppt->getProperties()->setTitle($more['title']); $ppt->getProperties()->setCreator("Dotspotting"); # set title here # $slide = $ppt->getActiveSlide(); $ppt->removeSlideByIndex(0); # draw the maps $dot_per_slide = 1; $img_more = array('width' => $w, 'height' => $h, 'dot_size' => 20); if (!$dot_per_slide || count($dots) == 0) { $maps[] = maps_png_for_dots($dots, $img_more); } else { $img_more['dot_size'] = 25; $img_more['width'] = $img_more['height']; $img_more['img_prefix'] = 'ppt'; # remember: 1 dot per slide $_dots = array(); foreach ($dots as $dot) { $_dots[] = array($dot); } # See this? It's to prevent Dotspoting from accidentally # DOS-ing itself. $enable_multigets = $GLOBALS['cfg']['wscompose_enable_multigets']; if ($dot_per_slide && count($dots) > $GLOBALS['cfg']['wscompose_max_dots_for_multigets']) { $GLOBALS['cfg']['wscompose_enable_multigets'] = 0; } $maps = maps_png_for_dots_multi($_dots, $img_more); $GLOBALS['cfg']['wscompose_enable_multigets'] = $enable_multigets; } # now draw all the maps... $count_maps = count($maps); for ($i = 0; $i < $count_maps; $i++) { $map = $maps[$i]; $slide = $ppt->createSlide(); $shape = $slide->createDrawingShape(); $shape->setName('map'); $shape->setDescription(''); $shape->setPath($map); $shape->setWidth($w); $shape->setHeight($h); $shape->setOffsetX(0); $shape->setOffsetY(0); if ($dot_per_slide) { $dot = $dots[$i]; if (!$dot['id']) { continue; } $_dot = dots_get_dot($dot['id'], $more['viewer_id']); if (!$_dot['id']) { continue; } $shape = $slide->createDrawingShape(); $shape->setName('map'); $shape->setDescription(''); $shape->setPath($map); $text = $slide->createRichTextShape(); $text->setHeight($h); $text->setWidth($w - $h); $text->setOffsetX($h + 20); $text->setOffsetY(0 + 20); $align = $text->getAlignment(); $align->setHorizontal(PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT); $cols = array_merge($_dot['index_on'], array('latitude', 'longitude', 'created', 'id')); foreach ($cols as $col) { $value = trim($dot[$col]); if (!$value) { continue; } $body = $text->createTextRun("{$col}:\n"); $body->getFont()->setSize(18); $body->getFont()->setBold(false); # default bold font is not what do say "pretty" $body = $text->createTextRun("{$dot[$col]}\n\n"); $body->getFont()->setSize(14); $body->getFont()->setBold(false); } } } # $writer = PHPPowerPoint_IOFactory::createWriter($ppt, 'PowerPoint2007'); $writer->save($more['path']); $writer = null; foreach ($maps as $path) { if ($path && !file_exists($path) && !unlink($path)) { error_log("[EXPORT] (ppt) failed to unlink {$path}"); } } return $more['path']; }
$_SLIDE_SIZE = array('height' => 540, 'width' => 720); $_DEFAULT_IMG_SIZE = 960; $_MAX_SLIDES = 50; $server = ''; $maxExecutionThreshold = 0.8; $maxExecTime = ini_get('max_execution_time'); $startTime = microtime(true); date_default_timezone_set('Europe/Vienna'); header('Content-Type: application/json'); $ppt = new PHPPowerPoint(); // getting input $json = $_POST['slides']; //file_get_contents('test/powerpoint.json'); //$json = utf8_decode($json); $json = json_decode($json, true); $props = $ppt->getProperties(); $props->setCompany('Universitätsbibliothek | Universität Wien'); $props->setCreated(time()); $props->setCreator('Phaidra+'); // creating random directory if (!is_dir($_PPT_STORAGE_PATH)) { mkdir($_PPT_STORAGE_PATH); chmod($_PPT_STORAGE_PATH, 0777); } if (!isset($_POST['pickup'])) { $t = 0; do { $slideId = time() . mt_rand(0, 10000); $t++; } while (is_dir($_PPT_STORAGE_PATH . $slideId) && $t < 10000); } else {