Exemplo n.º 1
0
 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');
 }
Exemplo n.º 2
0
 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');
 }
Exemplo n.º 3
0
 /**
  * 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();
 }
Exemplo n.º 4
0
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
Exemplo n.º 5
0
 /**
  * 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;
 }
Exemplo n.º 6
0
 /**
  * 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();
 }
Exemplo n.º 7
0
 * @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);
Exemplo n.º 8
0
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'];
}
Exemplo n.º 9
0
$_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 {