• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

PHPOffice / PHPPresentation / 33633871908
94%

Build:
DEFAULT BRANCH: master
Ran 02 Sep 2026 01:12PM UTC
Jobs 1
Files 147
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

02 Sep 2026 01:07PM UTC coverage: 94.006% (+0.03%) from 93.975%
33633871908

push

github

web-flow
Keynote Reader and Writer : Read and write the text and the images of a .key (#949)

A `.key` could be neither read nor written, so a Keynote deck had to be exported to
PPTX by hand before this library could see it.

Added `Reader\Keynote` and `Writer\Keynote`, and registered the Reader with the
automatic resolution of `IOFactory`.

The Reader reads both shapes of the format :

- Keynote '13 and later store the deck as `Index/*.iwa` components, which are Snappy
  compressed frames of Protobuf messages. `Reader\Keynote\Snappy`,
  `Reader\Keynote\Protobuf` and `Reader\Keynote\IwaStream` read that container without
  a Protobuf dependency and without Apple's schemas : a message is kept field by field,
  which is all the text and the names of the image files ask for.
- Keynote '09 stores it as an `index.apxl` XML document (or `index.apxl.gz`), read with
  XPath.

Read out of a slide : the text of every text storage, the speaker note, and the images
the slide references, loaded as `Shape\Drawing\Base64` and skipped on `SKIP_IMAGES`. The
Writer writes the same set, as the `index.apxl` package Keynote '09 reads. A `.key` of
neither shape, or a component whose frames are not Snappy, is refused with an exception
naming what was found.

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

421 of 444 new or added lines in 5 files covered. (94.82%)

11324 of 12046 relevant lines covered (94.01%)

69.93 hits per line

Uncovered Changes

Lines Coverage ∆ File
21
88.77
src/PhpPresentation/Reader/Keynote.php
1
97.56
src/PhpPresentation/Reader/Keynote/Protobuf.php
1
98.86
src/PhpPresentation/Reader/Keynote/Snappy.php
Jobs
ID Job ID Ran Files Coverage
1 33633871908.1 02 Sep 2026 01:12PM UTC 147
94.01
GitHub Action Run
Source Files on build 33633871908
  • Tree
  • List 147
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 44ebfc02 on github
  • Prev Build on master (#33630976787)
  • Next Build on master (#33645469827)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc