A pure PHP library for reading and writing presentations documents

Overview

PHPPresentation

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

Branch Master : PHPPresentation

Branch Develop : PHPPresentation

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)
PHP implementation for reading and writing Apache Parquet files/streams

php-parquet This is the first parquet file format reader/writer implementation in PHP, based on the Thrift sources provided by the Apache Foundation.

null 17 Oct 25, 2022
JSONFinder - a library that can find json values in a mixed text or html documents, can filter and search the json tree, and converts php objects to json without 'ext-json' extension.

JSONFinder - a library that can find json values in a mixed text or html documents, can filter and search the json tree, and converts php objects to json without 'ext-json' extension.

Eboubaker Eboubaker 2 Jul 31, 2022
Columnar analytics for PHP - a pure PHP library to read and write simple columnar files in a performant way.

Columnar Analytics (in pure PHP) On GitHub: https://github.com/envoymediagroup/columna About the project What does it do? This library allows you to w

Envoy Media Group 2 Sep 26, 2022
A simple library for dealing with docx word processed documents

WordCat Limited manipulation of docx word processed documents A simple php library for manipulation of docx word processed document; in particular the

Stephen J Sullivan 0 Oct 22, 2021
Back the fun of reading - PHP Port for Arc90′s Readability

PHP Readability Library If you want to use an up-to-date version of this algorithm,check this newer project: https://github.com/andreskrey/readability

明城 517 Nov 18, 2022
A PHP web interface for scanning ISBN book codes, identify books with Antolin reading promotion offer

Ein PHP-Webinterface zum Scannen von ISBN-Buchcodes, identifiziere Bücher mit Antolin-Leseförderungs-Angebot. Einfache Installation. Für Mitarbeiter*innen in Schulbüchereien.

null 2 May 20, 2022
A lightweight framework-agnostic library in pure PHP for part-of-speech tagging

N-ai php pos tagger A lightweight framework-agnostic library in pure PHP for part-of-speech tagging. Can be used for chatbots, personal assistants, ke

Giorgio Rey 8 Nov 8, 2022
PHP OOP interface for writing Slack Block Kit messages and modals

Slack Block Kit for PHP ?? For formatting messages and modals for Slack using their Block Kit syntax via an OOP interface ?? By Jeremy Lindblom (@jere

Slack PHP Framework 32 Dec 20, 2022
Skosmos is a web-based tool providing services for accessing controlled vocabularies, which are used by indexers describing documents and searchers looking for suitable keywords.

Skosmos is a web-based tool providing services for accessing controlled vocabularies, which are used by indexers describing documents and searchers looking for suitable keywords.

National Library of Finland 195 Dec 24, 2022
Json-normalizer: Provides generic and vendor-specific normalizers for normalizing JSON documents

json-normalizer Provides generic and vendor-specific normalizers for normalizing JSON documents. Installation Run $ composer require ergebnis/json-nor

null 64 Dec 31, 2022
A school platform to organize documents and files for students manged by teachers also user role management

A school platform to organize documents and files for students manged by teachers also user role management. The app is developed by the LARAVEL Framework.

med el mobarik 3 Sep 5, 2022
Reference for writing clear PHP code

clearPHP Reference for writing clear PHP code It is difficult to know when one's code is well written. There are recommendations for writing PHP code

Seguy Damien 947 Dec 22, 2022
Result of our code-along meetup writing PHP 8.1 code

PHP 8.1 Demo Code This code demonstrates various PHP 8.0 and 8.1 features in a realistic, functional (but incomplete) codebase. The code is part of so

azPHP 2 Nov 14, 2021
A PHP wrapper around Libreoffice for converting documents from one format to another.

Document Converter A PHP wrapper around Libreoffice for converting documents from one format to another. For example: Microsoft Word to PDF OpenOffice

Lukas White 0 Jul 28, 2022
Algerian code generator for invoices, quotes or any commercial documents

Algerian invoice code generator The library is useful to generate code for invoices, quotes or any commercial transaction document. Goal Is to provide

Hippone Consulting 7 Jul 19, 2021
Test essentials for writing testable code that interacts with Magento core modules

Essentials for testing Magento 2 modules Using mocking frameworks for testing Magento 2 modules is counterproductive as you replicate line by line you

EcomDev B.V. 9 Oct 6, 2022
A pure PHP implementation of the MessagePack serialization format / msgpack.org[PHP]

msgpack.php A pure PHP implementation of the MessagePack serialization format. Features Fully compliant with the latest MessagePack specification, inc

Eugene Leonovich 368 Dec 19, 2022
A pure PHP implementation of the open Language Server Protocol. Provides static code analysis for PHP for any IDE.

A pure PHP implementation of the open Language Server Protocol. Provides static code analysis for PHP for any IDE.

Felix Becker 1.1k Jan 4, 2023
A beautiful, fully open-source, tunneling service - written in pure PHP

Expose A completely open-source ngrok alternative - written in pure PHP. Documentation For installation instructions, in-depth usage and deployment de

Beyond Code 3.9k Jan 7, 2023