A pure PHP library for reading and writing presentations documents

Overview

PHPPresentation

Latest Stable Version Code Climate Test Coverage Total Downloads License BountySource Join the chat at https://gitter.im/PHPOffice/PHPPresentation

Branch Master : Build Status Documentation Status Branch Develop : Build Status Documentation Status

PHPPresentation is a library written in pure PHP that provides a set of classes to write to different presentation file formats, i.e. Microsoft Office Open XML (OOXML or OpenXML) or OASIS Open Document Format for Office Applications (OpenDocument or ODF).

PHPPresentation is an open source project licensed under the terms of LGPL version 3. PHPPresentation is aimed to be a high quality software product by incorporating continuous integration and unit testing. You can learn more about PHPPresentation by reading the Developers' Documentation and the API Documentation.

Read more about PHPPresentation:

Features

  • Create an in-memory presentation representation
  • Set presentation meta data (author, title, description, etc)
  • Add slides from scratch or from existing one
  • Supports different fonts and font styles
  • Supports different formatting, styles, fills, gradients
  • Supports hyperlinks and rich-text strings
  • Add images with different styles (positioning, rotation, shadow)
  • Set printing options (header, footer, page margins, paper size, orientation)
  • Set transitions between slides
  • Output to different file formats: PowerPoint 2007 (.pptx), OpenDocument Presentation (.odp), Serialized Presentation)
  • ... and lots of other things!

Requirements

PHPPresentation requires the following:

Installation

Composer method

It is recommended that you install the PHPPresentation library through composer. To do so, add the following lines to your composer.json.

{
    "require": {
       "phpoffice/phppresentation": "dev-master"
    }
}

Manual download method

Alternatively, you can download the latest release from the releases page. In this case, you will have to register the autoloader. (Register autoloading is required only if you do not use composer in your project.)

require_once 'path/to/PhpPresentation/src/PhpPresentation/Autoloader.php';
\PhpOffice\PhpPresentation\Autoloader::register();

You will also need to download the latest PHPOffice/Common release from its releases page. And you will also have to register its autoloader, too.

require_once 'path/to/PhpOffice/Common/src/Common/Autoloader.php';
\PhpOffice\Common\Autoloader::register();

Getting started

The following is a basic usage example of the PHPPresentation library.

// with your own install
require_once 'src/PhpPresentation/Autoloader.php';
\PhpOffice\PhpPresentation\Autoloader::register();
require_once 'src/Common/Autoloader.php';
\PhpOffice\Common\Autoloader::register();

// with Composer
require_once 'vendor/autoload.php';

use PhpOffice\PhpPresentation\PhpPresentation;
use PhpOffice\PhpPresentation\IOFactory;
use PhpOffice\PhpPresentation\Style\Color;
use PhpOffice\PhpPresentation\Style\Alignment;

$objPHPPowerPoint = new PhpPresentation();

// Create slide
$currentSlide = $objPHPPowerPoint->getActiveSlide();

// Create a shape (drawing)
$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)
$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' ) );

$oWriterPPTX = IOFactory::createWriter($objPHPPowerPoint, 'PowerPoint2007');
$oWriterPPTX->save(__DIR__ . "/sample.pptx");
$oWriterODP = IOFactory::createWriter($objPHPPowerPoint, 'ODPresentation');
$oWriterODP->save(__DIR__ . "/sample.odp");

More examples are provided in the samples folder. You can also read the Developers' Documentation and the API Documentation for more detail.

Contributing

We welcome everyone to contribute to PHPPresentation. Below are some of the things that you can do to contribute:

Comments
  • Make a PPTX compatible with Mac Keynote

    Make a PPTX compatible with Mac Keynote

    Actually, @djuki have some problems for reading PPTX in Keynote.

    I added a patch for CodePlex (92ffaf48efb935639da46ef1a0b0e70de216724d - 29a3321cac8862005a66706ce90904a9b78780bf (Fix) - c0ef044cb9d1df3652964dad80c423fa13289586 (Fix)).

    But they always have a problem.

    Now, could you send me a PPTX file created by Keynote, plz ? Thx

    Type - Bug Component - PowerPoint2007 
    opened by Progi1984 43
  • Charts are broken / doesn't validate against Office 2013 XML

    Charts are broken / doesn't validate against Office 2013 XML

    I'm using the latest 0.9.0 release but the file generated from the Sample_05_Chart.php is broken and Powerpoint 2016 needs to repair the file before opening it (which removes the charts completly).

    Sample_05_Chart.pptx

    I've tried to validate the generated *.pptx file against Office 2013 XML formats and it throws 218 errors. Seems like every value for the attribute 'val' is a string having a percentage sign behind it instead of Int32

    Type - Enhancement Component - ODP Component - PowerPoint2007 
    opened by simplyray 37
  • psr-0 via composer broken.

    psr-0 via composer broken.

    You are telling composer that the namespace "PHPPowerPoint" exists within src/, it doesn't.

    All your code is within PhpOffice\PhpPowerpoint.

    Please fix.

    Type - Bug 
    opened by trq 36
  • Embed a video

    Embed a video

    http://www.aspose.com/docs/display/slidesnet/Adding+an+Embedded+Video+Frame+to+Slide https://support.office.com/en-us/article/Compatible-multimedia-file-formats-fe6b7fd4-629e-43a0-a7e2-0dd927dac56d

    • OpenXML
      • https://msdn.microsoft.com/en-us/library/dd947021(v=office.12).aspx
    • OpenDocument
      • http://ask.libreoffice.org/en/question/1898/how-to-embed-video-into-impress-presentation/
      • http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#__RefHeading__1415866_253892949
    <draw:frame draw:style-name="standard" draw:layer="layout" svg:width="33.866cm" svg:height="19.049cm" svg:x="-2.932cm" svg:y="0.976cm">
        <draw:plugin xlink:href="Media/Wildlife.wmv" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad" draw:mime-type="application/vnd.sun.star.media">
            <draw:param draw:name="Loop" draw:value="false"/>
            <draw:param draw:name="Mute" draw:value="false"/>
            <draw:param draw:name="VolumeDB" draw:value="0"/>
            <draw:param draw:name="Zoom" draw:value="fit"/>
        </draw:plugin>
    </draw:frame>
    
    Type - Enhancement Component - ODP Component - PowerPoint2007 
    opened by Progi1984 30
  • Adding Notes Breaks

    Adding Notes Breaks "Print Slide With Notes"

    You can print/save powerpoints that show the slide with the notes below it. Adding notes through phppresentation causes this feature to break and only the notes are displayed in the printout.

    Type - Bug 
    opened by JewrassicPark 28
  • Options for Charts

    Options for Charts

    Hi,

    it is possible to have charts like this: https://dl.dropboxusercontent.com/u/6242507/charts.png

    In the left chart i want have the values on the left line and not by the points. In the secon chart i want no paddings in the cake.

    and it is possible to use percent by countet value or must i calculate it by my self?

    Type - Enhancement Component - ODP Component - PowerPoint2007 
    opened by chuebert 24
  • Saving a presentation is not copying styles or layouts

    Saving a presentation is not copying styles or layouts

    If you try to load a presentation that was created in powerpoint or exported from keynote and then save it again without even doing anything, the file will lose styles and layouts:

    $pptReader = IOFactory::createReader('PowerPoint2007');
    $oPHPPresentation = $pptReader->load('Sample.pptx');
    
    $xmlWriter = IOFactory::createWriter($oPHPPresentation, 'PowerPoint2007');
    $xmlWriter->save("Sample-copy.pptx");
    
    

    before: screen shot 2015-11-25 at 10 38 03 am

    after:

    screen shot 2015-11-25 at 10 38 25 am
    opened by ziwar 22
  • Generated pptx file opened with errorin Office Powerpoint

    Generated pptx file opened with errorin Office Powerpoint

    Hi, I've got the same problem (https://github.com/PHPOffice/PHPPowerPoint/issues/47) but I have the new version with the 2 patches included.. It don't fix anything for me.

    It is only on Microsoft Powerpoint ( i've only tested on 2013 version), it work fine with Openoffice and Libreoffice.

    I don't know how to fix it

    Thanks for your time ! Evergreenn

    Component - PowerPoint2007 
    opened by Evergreenn 20
  • autosize text

    autosize text

    If the text is too large to fit in the box I would like it to automatically make the font size smaller. I assume that autoFit would be used, but I have been unable to get it working.

    Type - Bug Component - PowerPoint2007 
    opened by desigennaro 20
  • Feature not implemented (l.1131 : 102)

    Feature not implemented (l.1131 : 102)

    Some strange Problems over here. When opening a ppt with

    $pptreader = PhpOffice\PhpPowerpoint\IOFactory::createReader('PowerPoint97');

    it tells me "Unknown File Format". So i have opened the File in LibreOffice and saved it as PowerPoint97 because saving in Office makes no difference. After that this Exception shows up:

    Feature not implemented (l.1131 : 102)
    

    so, what is the meaning of these numbers? ;)

    Type - Bug Component - PowerPoint97-2003 
    opened by gmuehl 20
  • Format axis line

    Format axis line

    Is it possible to format the axis line for a chart in PHPPresentation? Our style requires that there is no visible Y axis line, only the labels.


    The $20 bounty on this issue has been claimed at Bountysource.

    Type - Enhancement Component - PowerPoint2007 Type - Documentation BountySource 
    opened by informed-source 18
  • How to convert file pptx to pdf file

    How to convert file pptx to pdf file

    I am doing the conversion of pptx files to pdf using the PhpPresentation library, but it seems that the library does not support this yet, my code:

    public static function convertFilePptxToPdf($file, $nameFile)
        {
            //Load pptx file
            $reader = \PhpOffice\PhpPresentation\IOFactory::createReader("PowerPoint2007");
            $spreadsheet = $reader->load($file);
            //Save it into PDF
            $PDFWriter = \PhpOffice\PhpPresentation\IOFactory::createWriter($spreadsheet, 'Dompdf');
            $PDFWriter->save(storage_path('app/public/files/' . $nameFile));
            return $nameFile;
        }
    
    opened by duongsieu 0
  • Please add support for speaker notes

    Please add support for speaker notes

    I am seeing open issues about slide notes and viewers like Keynote, and indeed adding notes causes a format invalid error message in this app for me. E.g. https://github.com/PHPOffice/PHPPresentation/issues/83

    The real issue is that speaker notes should be simple to add to a slide, as plaintext blocks. See here about speaker notes: https://support.microsoft.com/en-us/office/add-speaker-notes-to-your-slides-26985155-35f5-45ba-812b-e1bd3c48928e

    It would be great to have a simple method on the slide class to add speaker notes.

    opened by macu 1
  • How to change font size of chart axis labels?

    How to change font size of chart axis labels?

    I am trying to set a different font size (and eventually change also the color) of X and Y axis labels in a chart. My code is like:

    $oShape = $currentSlide->createChartShape(); // ..etc. and chart looks good
    $oShape->getPlotArea()->getAxisX()->getFont()->setSize(7); // it does nothing
    

    setSize() doesn't set the new value and font size remains the same. No errors or warnings.

    opened by Jaguar1 0
  • Custom Presentation layout

    Custom Presentation layout

    I'm trying to set a widescreen, 13.333" x 7.5" size for my PowerPoint document. fFom the samples (and what I can understand from the source) this should work

    $objPHPPowerPoint = new PhpPresentation();
    $objPHPPowerPoint->getLayout()->setDocumentLayout(DocumentLayout::LAYOUT_CUSTOM)
                                ->setCX(13.333,DocumentLayout::UNIT_INCH)
                                ->setCY(7.5,DocumentLayout::UNIT_INCH); 
    

    but I get the following error

    Fatal error: Uncaught TypeError: Cannot access offset of type string on string in 
    C:\...d\vendor\phpoffice\phppresentation\src\PhpPresentation\DocumentLayout.php:138
    Stack trace:
    #0 C:\...\pptx.php(30): PhpOffice\PhpPresentation\DocumentLayout->setDocumentLayout('custom')
    #1 {main}
      thrown in C:\...d\vendor\phpoffice\phppresentation\src\PhpPresentation\DocumentLayout.php on line 138
    

    Using LAYOUT_SCREEN_16X9 and LAYOUT_OVERHEAD don't throw an error in generation, but PowerPoint repairs the file on opening

    opened by Offbeatmammal 0
  • AutoSize text in Powerpoint2007

    AutoSize text in Powerpoint2007

    if I have a text object where I am setting the AutoSize parameter to resize text to fit the shape, or resize the shape to fit the text, it doesn't seem to be working as expected, even though the correct radio button is selected in PowerPoint. I know this was looked at back in #71 but still seems to be an issue

    $shape->setAutoFit("spAutoFit");
    

    FWIW I had a similar issue, both in VBA and using NetOfficeFW (there's been lots of experiments with this) and in the C# app I ended up using code like this to address it:

    if (sh.TextFrame.AutoSize == NetOffice.PowerPointApi.Enums.PpAutoSize.ppAutoSizeMixed)
        {
            float h_max = sh.Height - sh.TextFrame.MarginTop - sh.TextFrame.MarginBottom;
            while ((sh.TextFrame.TextRange.BoundHeight - h_max) > 6 && sh.TextFrame.TextRange.Font.Size > 4.2)
                {
                    sh.TextFrame.TextRange.Font.Size = (float)Math.Round(sh.TextFrame.TextRange.Font.Size * 0.9, 0);
                }
        }
    
    opened by Offbeatmammal 0
Releases(1.0.0)
  • 1.0.0(Nov 25, 2021)

    Bugfix

    • PowerPoint2007 Writer : Text is subscripted when set superscript to false - @qmachard GH-360
    • Core : Defining width & height of a shape don't return any error if width & height were equal to 0 - @surger GH-555
    • ODPresentation Writer : Display axis title depending the visibility - @Progi1984 GH-410

    Changes

    • Dropped support for HHVM - @sunspikes GH-556
    • PHP 7.1 is now supported - @Progi1984 GH-355
    • Added support PHP 7.4 to 8.0 & Removed support PHP < 7.1 - @Progi1984 GH-636
    • Added support for PHP 8.1 - @Progi1984 GH-661
    • Removed deprecated methods/classes - @Progi1984 GH-650
    • Migrated use of PHPExcel to PhpSpreadsheet - @Progi1984 GH-652
    • PhpOffice\PhpPresentation\Style\Color : Define only the transparency - @Progi1984 GH-370
    • PowerPoint2007 Reader : Background Color based on SchemeColor - @Progi1984 GH-397
    • PowerPoint2007 Reader : Support for hyperlinks under pictures - @ulziibuyan
    • PowerPoint2007 Reader : Load images in their initial format (and not by default in PNG) - @polidog GH-553

    Features

    • Support for bar overlap in 2D bar charts - @mindline GH-667
      • PowerPoint2007 Writer
    • Support for the position of Legend in ODPresentation Writer - @Progi1984 GH-355
    • Support for DoughnutChart - @Progi1984 GH-355
      • ODPresentation Writer
      • PowerPoint2007 Writer
    • Support for fill for transparent image - @Progi1984 & @JewrassicPark GH-370
      • ODPresentation Reader
      • ODPresentation Writer
      • PowerPoint2007 Reader
      • PowerPoint2007 Writer
    • Support for Slideshow Type (Fullscreen/Window/Kiosk mode) - @zmip GH-588 & @Progi1986 GH-656
      • ODPresentation Reader
      • ODPresentation Writer
      • PowerPoint2007 Reader
      • PowerPoint2007 Writer
    • Support for RTL in Alignment & Font Format (Latin/East Asian/Complex Script) - @amirakbari GH-629 & @Progi1986 GH-657
      • ODPresentation Reader
      • ODPresentation Writer
      • PowerPoint2007 Reader
      • PowerPoint2007 Writer
    • Support for Border & Fill for Chart's Marker in PowerPoint2007 Writer - @ksmeeks0001 GH-627 & @Progi1986 GH-658
    • Support for rotation for axis label - @Progi1986 GH-410
      • ODPresentation Writer
      • PowerPoint2007 Writer
    • Support for managing missing values in Chart - @TonisOrmisson GH-581 & @Progi1986 GH-659
      • ODPresentation Writer
      • PowerPoint2007 Writer
    • Support for defining ticks label position for Axis in Chart - @Web-Mobiledev GH-591 & @Progi1986 GH-660
      • ODPresentation Writer
      • PowerPoint2007 Writer
    • Support for interval unit for Chart's Axis - @Progi1984 GH-546
      • ODPresentation Writer
      • PowerPoint2007 Writer
    • Support for line smooth for line and scatter chart - @ksmeeks0001 GH-626 & @Progi1984 GH-662
      • ODPresentation Writer
      • PowerPoint2007 Writer
    • Support for column spacing for RichText - @zoff83 GH-617 & @Progi1984 GH-663
      • PowerPoint2007 Reader
      • PowerPoint2007 Writer
    • Support for line spacing mode & spacing before/after for Paragraph - @zoff83 GH-617 & @Progi1984 GH-663
      • ODPresentation Reader
      • ODPresentation Writer
      • PowerPoint2007 Reader
      • PowerPoint2007 Writer
    • Support for custom document properties - @Progi1984 GH-313
      • ODPresentation Reader
      • ODPresentation Writer
      • PowerPoint2007 Reader
      • PowerPoint2007 Writer
    • Support for RadarChart - @Progi1984 GH-253
      • ODPresentation Writer
      • PowerPoint2007 Writer
    • Support for Drawing (SVG format) - @Aggiekev GH-531 & @Progi1984 GH-666
      • ODPresentation Reader
      • ODPresentation Writer
      • PowerPoint2007 Reader
      • PowerPoint2007 Writer
    • Support for Geometric form/AutoShape - @Progi1984 GH-545
      • PowerPoint2007 Writer

    Project Management

    • Migrated from Travis CI to Github Actions - @Progi1984 GH-635
    • Enabled PHPStan - @Progi1984 GH-639
    • Enabled PHPCSFixer - @Progi1984 GH-637 / GH-640
    • Added link to Coveralls - @Progi1984 GH-648
    • Migrated from ReadTheDocs to MkDocs & Github Actions - @Progi1984 GH-647
    • Added Changelog to MkDocs - @Progi1984 GH-649

    BC Breaks

    • Classes have been strict typed
    • PhpOffice\PhpPresentation\PhpPresentation
      • Removed method getProperties() (replaced by getDocumentProperties())
      • Removed method getZoom() (replaced by getPresentationProperties()->getZoom())
      • Removed method isMarkedAsFinal() (replaced by getPresentationProperties()->isMarkedAsFinal())
      • Removed method markAsFinal($state) (replaced by getPresentationProperties()->markAsFinal($state))
      • Removed method setProperties($value) (replaced by setDocumentProperties())
      • Removed method setZoom($zoom) (replaced by getPresentationProperties()->setZoom($zoom))
    • PhpOffice\PhpPresentation\Shape\Chart\Type\AbstractType
      • Removed method getData() (replaced by getSeries())
      • Removed method setData($value) (replaced by setSeries($value))
    • PhpOffice\PhpPresentation\Writer\PowerPoint2007
      • Removed method getLayoutPack()
      • Removed method setLayoutPack($pValue)
    • PhpOffice\PhpPresentation\Writer\PowerPoint2007\LayoutPack\AbstractLayoutPack
      • Removed class
    • PhpOffice\PhpPresentation\Writer\PowerPoint2007\LayoutPack\PackDefault
      • Removed class
    • PhpOffice\PhpPresentation\Writer\PowerPoint2007\LayoutPack\TemplateBased
      • Removed class
    Source code(tar.gz)
    Source code(zip)
  • 0.9.0(Jul 5, 2017)

    Bugfix

    • PowerPoint2007 Writer : Margins in table cell - @Progi1984 GH-347

    Changes

    • PowerPoint2007 Writer : Write percentage values with a trailing percent sign instead of formatted as 1000th of a percent to comply with the standard - @k42b3 GH-307

    Features

    • PowerPoint2007 Writer : Implemented XSD validation test case according to the ECMA/ISO standard - @k42b3 GH-307
    • PowerPoint2007 Writer : Implement visibility for axis - @kw-pr @Progi1984 GH-356
    • PowerPoint2007 Writer : Implement gap width in Bar(3D) Charts - @Progi1984 GH-358
    Source code(tar.gz)
    Source code(zip)
  • 0.8.0(Apr 3, 2017)

    Bugfix

    • PowerPoint2007 Writer : Fixed the marker on line chart when symbol is none - @Napryc GH-211
    • PowerPoint2007 Writer : Fixed the format value in Pie Chart - @Napryc GH-212
    • PowerPoint2007 Writer : The presentation need repairs on Mac @jrking4 GH-266 GH-276
    • PowerPoint2007 Writer : Fix for PowerPoint2007 Writer (Need repair) @Progi1984 GH-266 GH-274 GH-276 GH-282 GH-302
    • PowerPoint2007 Writer : Fixed the axis title in bar chart - @pgee70 GH-267
    • PowerPoint2007 Writer : Fixed the label position in bar chart - @pgee70 GH-268
    • PowerPoint2007 Writer : Support of margins in cell in table - @carlosafonso @Progi1984 GH-273 GH-315
    • Fixed the corruption of file when an addExternalSlide is called - @Progi1984 GH-240

    Changes

    • Misc : Added two methods for setting Border & Fill in Legend - @Progi1984 GH-265

    Features

    • ODPresentation Writer : Show/Hide Value / Name / Series Name in Chart - @Progi1984 GH-272
    • ODPresentation Writer : Axis Bounds in Chart - @Progi1984 GH-269
    • PowerPoint97 Reader : Support of Slide Note - @Progi1984 GH-226
    • PowerPoint2007 Reader : Support of Shape Table - @Progi1984 GH-240
    • PowerPoint2007 Reader : Support of Slide Note - @Progi1984 GH-226
    • PowerPoint2007 Reader : Support text direction in Alignment for Table - @Progi1984 GH-218
    • PowerPoint2007 Writer : Implement character spacing - @jvanoostrom GH-301
    • PowerPoint2007 Writer : Axis Bounds in Chart - @Progi1984 GH-269
    • PowerPoint2007 Writer : Implement Legend Key in Series for Chart - @Progi1984 GH-319
    • PowerPoint2007 Writer : Support text direction in Alignment for Table - @SeregPie GH-218
    • PowerPoint2007 Writer : Support tick mark & unit in Axis for Chart - @Faab GH-218
    • PowerPoint2007 Writer : Support separator in Series for Chart - @jphchaput GH-218
    • PowerPoint2007 Writer : Add support for Outline in Axis - @Progi1984 GH-255
    • PowerPoint2007 Writer : Support autoscale for Chart - @Progi1984 GH-293
    Source code(tar.gz)
    Source code(zip)
  • 0.7.0(Sep 12, 2016)

    This release marked the implementation of layout management.

    Bugfix

    • Fixed the image project - @mvargasmoran GH-177
    • PowerPoint2007 Writer : Bugfix for printing slide notes - @JewrassicPark @Progi1984 GH-179

    Changes

    • PhpOffice\PhpPresentation\Writer\ODPresentation : Move to Design Pattern Decorator - @Progi1984
    • PhpOffice\PhpPresentation\Writer\PowerPoint2007 : Move to Design Pattern Decorator - @Progi1984
    • PhpOffice\PhpPresentation\Shape\Type\AbstracType\getData has been deprecated for PhpOffice\PhpPresentation\Shape\Type\AbstracType\getSeries - @Progi1984 GH-169
    • PhpOffice\PhpPresentation\Shape\Type\AbstracType\setData has been deprecated for PhpOffice\PhpPresentation\Shape\Type\AbstracType\setSeries - @Progi1984 GH-169
    • Added documentation for chart series (font, outline, marker) - @Progi1984 GH-169
    • Internal Structure for Drawing Shape - @Progi1984 GH-192
    • Documentation about manual installation - @danielbair GH-254

    Features

    • ODPresentation & PowerPoint2007 Writer : Add support for Comment - @Progi1984 GH-116
    • ODPresentation & PowerPoint2007 Writer : Thumbnail of the presentation - @Progi1984 GH-125
    • ODPresentation & PowerPoint2007 Writer : Add support for Gridlines in Chart - @Progi1984 GH-129
    • ODPresentation & PowerPoint2007 Writer : Support for images in base 64 - @Progi1984 GH-168
    • ODPresentation & PowerPoint2007 Writer : Marker of Series in Line & Scatter chart is customizable - @Progi1984 GH-169
    • ODPresentation & PowerPoint2007 Writer : Outline of Series in Line & Scatter chart is customizable - @Progi1984 GH-169
    • ODPresentation & PowerPoint2007 & Serialized Writer : Support for Zip Adapter - @Progi1984 GH-176
    • ODPresentation & PowerPoint2007 Writer : language property to TextElement - @skrajewski & @Progi1984 GH-180
    • ODPresentation & PowerPoint2007 Writer : Add Font Support For Chart Axis - @jrking4 GH-186
    • ODPresentation & PowerPoint2007 Writer : Support for video - @Progi1984 GH-123
    • ODPresentation & PowerPoint2007 Writer : Support for Visibility for slides - @Progi1984
    • PowerPoint2007 Reader : Layout Management - @vincentKool @Progi1984 GH-161
    • PowerPoint2007 Reader : Slide size - @loverslcn @Progi1984 GH-246
    • PowerPoint2007 Reader : Bullet Color - @Progi1984 GH-257
    • PowerPoint2007 Reader : Line Spacing - @Progi1984 GH-257
    • PowerPoint2007 Writer : Presentation with predefined View Type - @Progi1984 GH-120
    • PowerPoint2007 Writer : Implement alpha channel to Fills - @Dayjo GH-203 / @Progi1984 GH-215
    • PowerPoint2007 Writer : Implement Animations - @JewrassicPark GH-214 / @Progi1984 GH-217
    • PowerPoint2007 Writer : Layout Management - @vincentKool @Progi1984 GH-161
    • PowerPoint2007 Writer : Bullet Color - @piotrbelina GH-249
    • PowerPoint2007 Writer : Line Spacing - @piotrbelina GH-249
    Source code(tar.gz)
    Source code(zip)
  • 0.6.0(Jan 24, 2016)

    This release marked the implementation of background in slide, and the bugfix for opening PPTX on Mac.

    Bugfix

    • Documentation : Fixes in the rename of PHPPowerPoint - @Progi1984 GH-127
    • ODPresentation : Exclude SVM files for reader - @Progi1984 GH-141
    • PowerPoint2007 Writer : Bugfix for opening PPTX on Mac - @thsteinmetz GH-89

    Changes

    • PhpOffice\PhpPresentation\getProperties has been deprecated for PhpOffice\PhpPresentation\getDocumentProperties - @Progi1984 GH-154
    • PhpOffice\PhpPresentation\setProperties has been deprecated for PhpOffice\PhpPresentation\setDocumentProperties - @Progi1984 GH-154
    • PhpOffice\PhpPowerpoint\Style\Alignment::setLevel can now be defined great than 8 - @Progi1984 GH-141

    Features

    • ODPresentation Reader/Writer : Name of the slide - @Progi1984 GH-121
    • ODPresentation Reader/Writer : Slide Background Color or Image - @Progi1984 GH-152
    • PowerPoint2007 Reader : Support for Layout Name - @Progi1984 GH-144
    • PowerPoint2007 Reader/Writer : Mark as final - @Progi1984 GH-118
    • PowerPoint2007 Reader/Writer : Set default zoom value for presentation - @Progi1984 GH-122
    • PowerPoint2007 Reader/Writer : Slide Background Color or Image - @Progi1984 GH-152
    • PowerPoint2007 Reader/Writer : Add Properties for allowing loop continuously until 'Esc' - @Progi1984 GH-154
    Source code(tar.gz)
    Source code(zip)
  • 0.5.0(Oct 8, 2015)

    This release marked the implementation of two news readers : PowerPoint2007 & ODPresentation. But the main change is that PhpOffice\PhpPowerpoint becomes PhpOffice\PhpPresentation.

    Features

    • PowerPoint2007 Reader : Initial Commit - @Progi1984 GH-44
    • ODPresentation Reader : Initial Commit - @Progi1984 GH-113

    Bugfix

    • Fixed the sample in Readme.md - @Progi1984 GH-114

    Changes

    • PhpOffice\PhpPowerpoint becomes PhpOffice\PhpPresentation - @Progi1984 GH-25
    • PhpOffice\PhpPowerpoint\Style\Font::setStriketrough has been removed : Use setStrikethrough - @Progi1984
    • PhpOffice\PhpPowerpoint\AbstractShape::getSlide has been removed - @Progi1984
    • PhpOffice\PhpPowerpoint\AbstractShape::setSlide has been removed - @Progi1984
    • PhpOffice\PhpPowerpoint\DocumentLayout::getLayoutXmilli has been removed : getCX(DocumentLayout::UNIT_MILLIMETER) - @Progi1984
    • PhpOffice\PhpPowerpoint\DocumentLayout::getLayoutYmilli has been removed : getCY(DocumentLayout::UNIT_MILLIMETER) - @Progi1984
    • PhpOffice\PhpPowerpoint\DocumentLayout::setLayoutXmilli has been removed : setCX(DocumentLayout::UNIT_MILLIMETER) - @Progi1984
    • PhpOffice\PhpPowerpoint\DocumentLayout::setLayoutYmilli has been removed : setCY(DocumentLayout::UNIT_MILLIMETER) - @Progi1984
    • Update the dependence PhpOffice\Common to 0.2.* - @Progi1984
    • Migrated Travis CI to legacy - @Progi1984 GH-115
    Source code(tar.gz)
    Source code(zip)
  • 0.4.0(Jul 7, 2015)

    This release marked the implementation of two new types in Chart (Area, Bar), transitions between slides and the refactoring of PowerPoint97 reader.

    Features

    • Added support for grouping shapes together in a Group - @Pr0phet GH-68
    • Added support for calculating the offset and extent on a Slide. - @Pr0phet GH-68
    • Added support for Horizontal bar chart - @rdoepke @Progi1984 GH-58
    • Added support for hyperlink on picture (ODPresentation & PowerPoint2007) - @Progi1984 GH-49
    • Added support for hyperlink on richtext (PowerPoint2007) - @JewrassicPark GH-49
    • Added support for notes slide (ODPresentation & PowerPoint2007) - @Progi1984 @JewrassicPark GH-63
    • Added option for explosion in Pie3D Chart (ODPresentation & PowerPoint2007) - @Progi1984 GH-76
    • ODPresentation Writer : Support for fill in RichText - @Progi1984 GH-79
    • ODPresentation Writer : Support for border style in RichText - @Progi1984 GH-79
    • ODPresentation Writer : Support for Area Chart - @Progi1984 GH-82
    • PowerPoint2007 Writer : Support for Area Chart - @Progi1984 GH-82
    • ODPresentation Writer : Support for Bar Chart - @Progi1984 GH-82
    • PowerPoint2007 Writer : Support for Bar Chart - @Progi1984 GH-82
    • Added units in DocumentLayout - @Progi1984 GH-87
    • Added support for transitions between slides - @Progi1984
    • ODPresentation Writer : Support for Pie Chart & Stack Percent Bar Charts - @jrking4 GH-108
    • PowerPoint2007 Writer : Support for Pie Chart & Stack Percent Bar Charts - @jrking4 GH-108

    Bugfix

    • PSR-0 via composer broken - @Progi1984 GH-51
    • ODPresentation Writer : Title in Legend in chart doesn't displayed - @Progi1984 GH-79
    • ODPresentation Writer : Segments in Pie3D Chart are now in clockwise order, as in PowerPoint2007 Writer - @Progi1984 GH-79
    • ODPresentation Writer : Axis in Line Chart have not tick marks displayed, as in PowerPoint2007 Writer - @Progi1984 GH-79
    • ODPresentation Writer : Shadow don't work for RichTextShapes - @Progi1984 GH-81
    • PowerPoint2007 Writer : Fill don't work for RichTextShapes - @Progi1984 GH-61
    • PowerPoint2007 Writer : Border don't work for RichTextShapes - @Progi1984 GH-61
    • PowerPoint2007 Writer : Hyperlink in table doesn't work - @Progi1984 GH-70
    • PowerPoint2007 Writer : AutoFitNormal works with options (fontScale & lineSpacingReduction) - @Progi1984 @desigennaro GH-71
    • PowerPoint2007 Writer : Shadow don't work for RichTextShapes - @Progi1984 GH-81
    • PowerPoint2007 Writer : Visibility of the Title doesn't work - @Progi1984 GH-107
    • Refactor findLayoutIndex to findLayoutId where it assumes the slideLayout order was sorted. IMPROVED: unit tests - @kenliau GH-95

    Miscellaneous

    • Improved the sample 04-Table for having a Text Run in a Cell - @Progi1984 GH-84
    • Improved the sample 04-Table for having two links in a Cell - @Progi1984 GH-93
    • Improved the documentation about Table Shapes and cell width - @Progi1984 GH-104
    • Some parts of code shared between PHPOffice projects have been moved to PhpOffice/Common - @Progi1984
    • Refactored the PowerPoint97 Reader for managing the group shape and improving evolutions - @Progi1984 GH-110
    • Added a sample (12) for PowerPoint97 Reader with tree of the PhpPowerPoint object - @Progi1984 GH-110
    Source code(tar.gz)
    Source code(zip)
  • 0.3.0(Sep 22, 2014)

    Features

    • PowerPoint97 Reader : Implement Basic Reader - @Progi1984 GH-15 GH-14 GH-4
    • ODPresentation Writer : Ability to set auto shrink text - @Progi1984 GH-28
    • Make package PSR-4 compliant. Autoload classes by composer out of the box - @Djuki GH-41

    Bugfix

    • PowerPoint2007 Writer : Powerpoint Repair Error in Office 2010 - @Progi1984 GH-39
    • PowerPoint2007 Writer : BUG: Repair Error / Wrong anchor if you don't set vertical alignment different to VERTICAL_BASE - @fregge GH-42
    • PowerPoint2007 Writer : Keynote incompatibility - @catrane CP#237322 / @Progi1984 GH-46

    Miscellaneous

    • QA : Move AbstractType for Chart - @Progi1984
    • QA : Unit Tests - @Progi1984
    Source code(tar.gz)
    Source code(zip)
  • 0.2.0(Jul 22, 2014)

    This release marked the transformation to namespaces (PHP 5.3+) and the implementation of a ODPresentation Writer.

    Features

    • Provide fluent interfaces where possible - @maartenba CP- 815
    • Use existing presentation template when writing PPTX file - @maartenba CP-1034
    • Implement bullet and numeric lists - @maartenba CP-1093
    • getProperties: setCompany feature request - @maartenba CP-1173
    • New shape type: table - @maartenba CP-1375
    • Use of CDATA text when writing text - @maartenba CP-2804
    • Possibility to set borders on tables and table cells - @maartenba CP-1378
    • Access to additional properties of Text Boxes - @maartenba CP-4921
    • Applied patch 7010 - @maartenba CP-7010
    • Applied patch 7020 - @maartenba CP-7020
    • Add a hyperlink to an image or textbox - @maartenba CP-1196
    • PowerPoint Charts - @maartenba CP-4953
    • Editing chart data - @maartenba CP-5580
    • Solid Fill support - @maartenba CP-5461
    • Applied patch 8375 - @maartenba CP-8375
    • Implement autoloader - @MarkBaker
    • ODPresentation Writer : Implement Basic Writer - @Progi1984 GH-1
    • ODPresentation Writer : Implement Support of Charts - @Progi1984 GH-33
    • ODPresentation Writer : Implement Support of Lines - @Progi1984 GH-30
    • ODPresentation Writer : Implement Support of Tables - @Progi1984 GH-31
    • PowerPoint2007 Writer : Implement Support of Fill - @Progi1984 GH-32

    Bugfix

    • Allow solid color fill - @MarkBaker
    • Table width setting Office 2007 - @maartenba CP-3910
    • Bullet characters in Master Slide Layouts of template file become corrupted - @maartenba CP-4598
    • Generated files cannot be opened in Office 08 for Mac OSX - @maartenba CP-3424
    • Table Cell Borders Not Displaying Correctly - @maartenba CP-2541
    • Multiple Master Slides are not supported - @maartenba CP-4597
    • Images in Layouts other than first Master Slide within Template file causes corrupted PPTX - @maartenba CP-4596
    • Fixed A3 and A4 formats dimensions - @delphiki GH-16
    • Fixed custom document layout - @delphiki GH-18
    • Filename parameter is required for IWriter::save method - @sapfeer0k GH-19
    • DocumentLayout: Fix incorrect variable assignment - @kaiesh GH-6
    • Hyperlink: Wrong input parameter object type in setHyperlink - @nynka GH-23
    • ODPresentation Writer: ODP writer is locale sensitive in the wrong places - @Progi1984 GH-21
    • ODPresentation Writer: Display InMemory Image - @Progi1984 GH-29
    • PowerPoint2007 Writer: Bar3D doesn't display - @Progi1984 GH-32
    • PowerPoint2007 Writer: Changed PowerPoint2007 writer attributes to protected - @delphiki GH-20
    • PowerPoint2007 Writer: Scatter chart with numerical X values not working well - @Progi1984 GH-3
    • Shape RichText: Support of Vertical Alignment in PowerPoint2007 - @Progi1984 GH-35

    Miscellaneous

    • Rename PHPPowerpoint.php to PHPPowerPoint.php - @maartenba CP-1165
    • Create build script using Phing - @maartenba CP-5270
    • QA: Prepare .travis.yml and phpcs.xml for Travis build passing - @Progi1984 @ivanlanin
    • QA: Initiate unit tests - @Progi1984 @ivanlanin
    • QA: Cleanup source code for PSR dan PHPDoc compatibility - @ivanlanin
    • QA: Unit Tests - @Progi1984 & @ivanlanin
    • Doc: Initiate documentation - @ivanlanin
    • Doc: Move to Read The Docs - @Progi1984
    • Refactor: Change PHPPowerPoint_Shape_Shadow to PHPPowerPoint_Style_Shadow because it's a style, not a shape - @ivanlanin
    • Refactor: Change PHPPowerPoint_SlideIterator to PHPPowerPoint_Slide_Iterator - @ivanlanin
    Source code(tar.gz)
    Source code(zip)
Owner
PHPOffice
PHPOffice
A pure PHP library for reading and writing spreadsheet files

PhpSpreadsheet PhpSpreadsheet is a library written in pure PHP and offers a set of classes that allow you to read and write various spreadsheet file f

PHPOffice 11.8k Jan 8, 2023
A pure PHP library for reading and writing project management files

PHPProject PHPProject is a library written in pure PHP that provides a set of classes to write to different project management file formats, i.e. Micr

PHPOffice 192 Dec 17, 2022
PhpSpreadsheet - a library written in pure PHP and offers a set of classes that allow you to read and write various spreadsheet file formats such as Excel and LibreOffice Calc

PhpSpreadsheet PhpSpreadsheet is a library written in pure PHP and offers a set of classes that allow you to read and write various spreadsheet file f

PHPOffice 11.8k Dec 31, 2022
PHPExcelFormatter is class to make getting data from Excel documents simpler.

PHPExcelFormatter PHPExcelFormatter is class to make getting data from Excel documents simpler. Read columns what you really need Set column names for

Rene Korss 4 Apr 28, 2022
Simple yet powerful Excel manipulation library for PHP 5.4+

| | \ / \_/ __ /^\ __ ' `. \_/ ,' ` \/ \/ _,--./| |\.--._ _,' _.-\_/-._ `._ | / \ | |

Wisembly 68 Sep 20, 2022
ExcelAnt - Simple yet powerful Excel manipulation library for PHP 5.4+

ExcelAnt is an Excel manipulation library for PHP 5.4. It currently works on top of PHPExcel. If you want to add / use another library, feel free to fork and contribute !

Wisembly 68 Sep 20, 2022
Read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way

Spout Spout is a PHP library to read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way. Contrary to other file readers or wr

Box 4.2k Jan 6, 2023
Read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way

OpenSpout OpenSpout is a community driven fork of box/spout, a PHP library to read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scal

null 239 Jan 6, 2023
Parse and retrieve data from old format Excel XLS files. MS Excel 97 workbooks PHP reader.

SimpleXLS class 0.9.15 Parse and retrieve data from old Excel .XLS files. MS Excel 97-2003 workbooks PHP reader. PHP BIFF reader. No additional extens

Sergey Shuchkin 160 Jan 6, 2023
🚀 PHP Extension for creating and reader XLSX files.

Why use xlswriter Please refer to the image below. PHPExcel has been unable to work properly for memory reasons at 40,000 and 100000 points, but it ca

viest 1.9k Jan 4, 2023
🚀 Supercharged Excel exports and imports in Laravel

Supercharged Excel exports and imports A simple, but elegant Laravel wrapper around PhpSpreadsheet exports and imports. Quickstart · Documentation · V

Maatwebsite 11.2k Jan 4, 2023
an excel export/import tool for laravel based on php-xlswriter

Laravel-xlswriter 一款基于xlswriter的laravel扩展包 php-xlswriter是一款高性能的excel读写扩展,laravel-xlswriter基于该扩展做了封装,旨在提供一个便于使用的xlswriter的laravel工具包。 目前laravel-xlswrit

lysice 54 Dec 3, 2022
CSV data manipulation made easy in PHP

CSV Csv is a simple library to ease CSV parsing, writing and filtering in PHP. The goal of the library is to be powerful while remaining lightweight,

The League of Extraordinary Packages 3k Jan 1, 2023
Simplexcel.php - Easily read / parse / convert / write between Microsoft Excel XML / CSV / TSV / HTML / JSON / etc spreadsheet tabular file formats

Simple Excel Easily parse / convert / write between Microsoft Excel XML / CSV / TSV / HTML / JSON / etc formats For further deatails see the GitHuib P

Faisal Salman 550 Dec 27, 2022
A pure PHP library for reading and writing presentations documents

Branch Master : Branch Develop : PHPPresentation is a library written in pure PHP that provides a set of classes to write to different presentation fi

PHPOffice 1.2k Jan 2, 2023
A pure PHP library for reading and writing word processing documents

Master: Develop: PHPWord is a library written in pure PHP that provides a set of classes to write to and read from different document file formats. Th

PHPOffice 6.5k Jan 7, 2023
A pure PHP library for reading and writing spreadsheet files

PhpSpreadsheet PhpSpreadsheet is a library written in pure PHP and offers a set of classes that allow you to read and write various spreadsheet file f

PHPOffice 11.8k Jan 8, 2023
A pure PHP library for reading and writing project management files

PHPProject PHPProject is a library written in pure PHP that provides a set of classes to write to different project management file formats, i.e. Micr

PHPOffice 192 Dec 17, 2022
PHP Exif Library - library for reading and writing Exif headers in JPEG and TIFF files using PHP.

PEL: PHP Exif Library README file for PEL: PHP Exif Library. A library with support for reading and writing Exif headers in JPEG and TIFF images using

null 264 Dec 4, 2022
A library for reading and writing DNA test kit files in PHP.

php-dna Requirements php-dna 1.0+ requires PHP 8.0 (or later). Installation There are two ways of installing php-dna. Composer To install php-dna in y

Family Tree 365 4 Aug 31, 2022