Improvements in LibreOffice’s PowerPoint presentation support

LibreOffice’s native file format is OpenDocument, a fully open and standardised format that’s great for sharing documents and long-term data storage. Of course, LibreOffice does its best to open files made by other office software as well, even if they’re stored in pseudo-“standards” with cryptic and obfuscated contents. Compatibility with PowerPoint PPT(X) presentations is therefore a challenge, but developers are working hard on improvements…

A few months ago, we announced an initiative to improve the support of PPT and PPTX files in LibreOffice. Lots of great work happened since then and the results are collected below!

Everyone is invited to participate in the PowerPoint support initiative, either in development or testing. If you are interested in joining, please send an email to ilmari.lauhakangas@libreoffice.org.

Import/export

Stephan Bergmann (Red Hat):

Speed up loading a PPT file with equation objects


Noel Grandin (Collabora):

Speed up loading a PPT file with equation objects


Miklos Vajna (Collabora):

Add PPTX import/export for semi-transparent shape text

Transparent text before Miklos’s implementation

Transparent text before Miklos’s implementation

Transparent text after Miklos’s implementation

Transparent text after Miklos’s implementation

PPTX import: don’t set shape fill from the style in case the background fill is already set

Shape fill before Miklos’s fix

Shape fill before Miklos’s fix

Shape fill after Miklos’s fix

Shape fill after Miklos’s fix

PPTX import: fixed duplication of math objects

Math objects before Miklos’s fix

Math objects before Miklos’s fix

Math objects after Miklos’s fix

Math objects after Miklos’s fix


Tamás Zolnai (Collabora):

PPTX export: don’t change shape’s background transparency

Background transparency before Tamás’s fix

Background transparency before Tamás’s fix

Background transparency after Tamás’s fix

Background transparency after Tamás’s fix

PPTX export: don’t lose the gradient background fill of a slide

Gradient fill after Tamás’s fix

Gradient fill after Tamás’s fix


Xisco Faulí (TDF):

PPTX import: display shapes with washout mode

Shapes not displayed before Xisco’s fix

Shapes not displayed before Xisco’s fix

Shapes displayed after Xisco’s fix

Shapes displayed after Xisco’s fix

PPTX export: handle image colour/graphics modes correctly

Colour modes handled incorrectly before Xisco’s fix

Colour modes handled incorrectly before Xisco’s fix

Colour modes handled correctly after Xisco’s fix

Colour modes handled correctly after Xisco’s fix

PPTX import: don’t lose text highlighting in table cells

Text highlighting not displayed before Xisco’s fix

Text highlighting not displayed before Xisco’s fix

Text highlighting displayed after Xisco’s fix

Text highlighting displayed after Xisco’s fix

PPTX export: save text highlighting

No highlighting before Xisco’s fix

No highlighting before Xisco’s fix

Highlighting after Xisco’s fix

Highlighting after Xisco’s fix

PPTX import: respect no fill colour for text

Text visible before Xisco’s fix

Text visible before Xisco’s fix

Text invisible after Xisco’s fix

Text invisible after Xisco’s fix


Gülşah Köse (Collabora):

PPTX import: implement z-rotation of 3D text transformation

Text not rotated before Gülşah’s implementation

Text not rotated before Gülşah’s implementation

Text rotated after Gülşah’s implementation

Text rotated after Gülşah’s implementation

PPTX export: preserve textbox rotation attribute

Text goes bonkers before Gülşah’s fix

Text goes bonkers before Gülşah’s fix

Text stays put after Gülşah’s fix

Text stays put after Gülşah’s fix


Tamás Bunth (Collabora):

PPTX import: custom date as custom XTextField

Dates before Tamás’s fix

Dates before Tamás’s fix

Dates after Tamás’s fix

Dates after Tamás’s fix


Mark Hung (PPT/X team):

PPTX import/export: handle complex text properly

PPTX import: reset font settings, if necessary

Text before Mark’s fix

Text before Mark’s fix

Text after Mark’s fix

Text after Mark’s fix


Luke Deller (PPT/X team):

PPTX import: Fix IsTransparent() for unloaded graphics

Blue line not displayed before Luke’s fix

Blue line not displayed before Luke’s fix

Blue line displayed after Luke’s fix

Blue line displayed after Luke’s fix


Housekeeping

Julien Nabet:

Save/restore locking properly in ImplSdPPTImport::Import

sd: prefix members of SdrPowerPointImport

cppcheck: fix 2 funcArgOrderDifferent


Various

Mike Kaganski (Collabora):

PPTX export: disable undo during save

Thanks to everyone for their great work!

No Responses