Skip to main content

pptx-raster

The pure-Python PPTX toolkit: render slides to images, convert, extract, template, merge. No PowerPoint. No LibreOffice. No external applications.

pip install pptx-raster          # PyPI package name

Install as pptx-raster, import as pptx_raster.

from pptx_raster import (render, thumbnail, to_gif, contact_sheet,     # imaging
                      to_pdf, to_markdown, from_markdown,           # conversion
                      extract_text, extract_tables, extract_images, # extraction
                      replace_text, add_watermark,                  # templating
                      merge, split)                                 # deck ops

paths = render("deck.pptx", "out/", fmt="jpg", scale=2.0)   # -> [Path, ...]
for slide_idx, msgs in paths.warnings.items():               # honest warnings
    print(slide_idx, msgs)

render("secret.pptx", "out/", password="hunter2")            # encrypted decks work too

CLI (same features):

pptx_raster render deck.pptx -o out/ --format png --scale 2
pptx_raster pdf deck.pptx -o deck.pdf          pptx_raster gif deck.pptx -o deck.gif
pptx_raster thumb deck.pptx -o thumbs/         pptx_raster sheet deck.pptx -o overview.png
pptx_raster md deck.pptx -o deck.md            pptx_raster md2pptx notes.md -o deck.pptx
pptx_raster replace deck.pptx --map "{name}=ACME" -o out.pptx
pptx_raster watermark deck.pptx --text DRAFT -o out.pptx
pptx_raster merge a.pptx b.pptx -o all.pptx    pptx_raster split deck.pptx -o parts/

How it works

Built on python-pptx (OOXML parsing) + Pillow (rasterization) + resvg (embedded SVG icons). Implements the DrawingML rendering pipeline: theme/color resolution with full inheritance (slide → layout → master → theme), an ECMA-376 preset-geometry interpreter (all 187 preset shapes), freeform paths, group transforms, rotation/flips, alpha compositing, a text layout engine with font substitution, and tables. See Documentation/ for the R&D studies behind it.

Fidelity

Measured by per-slide SSIM against PowerPoint's own renders on a 146-slide corpus of real business decks (CI-gated):

Engine Mean SSIM vs PowerPoint
Aspose.Slides (commercial, ~$1000/dev) 0.878
pptx-raster 0.860–0.878 per deck
Spire.Presentation (commercial) 0.50–0.84, fails to load some decks

Supported features (v1)

Feature Status
Solid fills, theme colors, alpha/tint/shade ✅ full
All 187 preset autoshapes + freeform paths ✅ full
Rotation, flips, group shapes (nested) ✅ full
Pictures (PNG/JPG, crop, geometry clipping) ✅ full
SVG pictures ✅ full (rasterized via resvg)
Text: fonts, size, bold/italic, color, wrap, alignment, anchors ✅ full
Placeholder style inheritance (layout/master) ✅ full
Bullets (char + auto-numbered) ✅ full
Tables (grid, fills, borders, cell text) ✅ full
Missing fonts ⚠️ metric-compatible substitution + warning
Charts: clustered column, line, pie ✅ full (native rendering)
Other chart types, SmartArt, OLE ⬜ labeled placeholder + warning
Gradients, shadows/effects, WordArt, autofit ⬜ not rendered (warning)

The renderer never throws on unsupported content — it degrades to a labeled placeholder and reports a warning, so you always get your images.

Development

.venv\Scripts\pip install -e .[dev]
.venv\Scripts\python -m pytest            # units + fidelity gate
python tools\oracle_render.py             # regenerate PowerPoint references (needs PowerPoint)

The fidelity gate (tests/test_fidelity.py) enforces SSIM ≥ 0.75 on every slide and ≥ 0.85 per-deck mean.

License

pptx-raster is proprietary software. Without a license key it runs in evaluation mode (watermark + first 10 slides per deck). A paid annual per-developer license unlocks full output — see COMMERCIAL-LICENSE.md.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pptx_raster-1.0.0-cp313-cp313-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.13Windows x86-64

pptx_raster-1.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pptx_raster-1.0.0-cp313-cp313-macosx_11_0_arm64.whl (3.0 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pptx_raster-1.0.0-cp312-cp312-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.12Windows x86-64

pptx_raster-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (8.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pptx_raster-1.0.0-cp312-cp312-macosx_11_0_arm64.whl (3.0 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pptx_raster-1.0.0-cp311-cp311-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.11Windows x86-64

pptx_raster-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (8.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pptx_raster-1.0.0-cp311-cp311-macosx_11_0_arm64.whl (3.0 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pptx_raster-1.0.0-cp310-cp310-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.10Windows x86-64

pptx_raster-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pptx_raster-1.0.0-cp310-cp310-macosx_11_0_arm64.whl (3.0 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file pptx_raster-1.0.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pptx_raster-1.0.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f85b683ab6c2f1cf4d7932a6db3244348fd7bfde8e06c3ea3ef295e40c74d22d
MD5 9df3514f50b4e71ac2b3140e9d370d2b
BLAKE2b-256 45369850934150bff700f9cb48abffeba4617ee2510cbaeee4b1616be7ac12be

See more details on using hashes here.

Provenance

The following attestation bundles were made for pptx_raster-1.0.0-cp313-cp313-win_amd64.whl:

Publisher: release.yml on codevartech/pptx-raster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pptx_raster-1.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pptx_raster-1.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a9927f71d2d2e03e53b3f2e713d5c8075221ef25ec52141968c851db9598b24c
MD5 787f1d7bdf29859dc10c516740ecfa1c
BLAKE2b-256 46e983e0ba76c21f057585305c0e0b55f714dc934eb824a73731c5e63a930ddc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pptx_raster-1.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on codevartech/pptx-raster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pptx_raster-1.0.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pptx_raster-1.0.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b100618efb2e3971749fb0e3db7afc1fb2ad73bb297f0d4af7452eacf5538e8b
MD5 5d4dbcf71521da95c0036d650a25eb18
BLAKE2b-256 68bb8434244856b6759e7733c5f94fce9bd476c398fbf38d33860ce1ec9e85cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for pptx_raster-1.0.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on codevartech/pptx-raster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pptx_raster-1.0.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pptx_raster-1.0.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a0ddea7972a66326f8fffe2650ede6934f58192b78182cdda3d8d3c9d5bb5f46
MD5 4773414e85f7de9f03ddb65f12d47180
BLAKE2b-256 a0330167e8045715854ceb4492a09b9d7dd307b996c82cd49854b77d3a2ab8a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pptx_raster-1.0.0-cp312-cp312-win_amd64.whl:

Publisher: release.yml on codevartech/pptx-raster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pptx_raster-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pptx_raster-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3d1d1dcfc4b0795da5f511d113fbe9e3147bda3b638b1f0fdc80810b7f37a0f3
MD5 a2c423c9d0268cc4645ec4d8fa7907e1
BLAKE2b-256 2853fe6d25e978a3e1d6d75aad73d9d3dd422b2e0b82fcadd70c2732e113528d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pptx_raster-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on codevartech/pptx-raster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pptx_raster-1.0.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pptx_raster-1.0.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 838c4124b6bf51869c9ff1e981b62d217c15f2a00801c6b6333c808c1dcc52e2
MD5 6eb80c5d74e668aff9a0ed84bd0839a8
BLAKE2b-256 4ad43b3bcacf97185b74eca99c63ba21bc534f8dc75371dacbed76bd0a51924f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pptx_raster-1.0.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on codevartech/pptx-raster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pptx_raster-1.0.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pptx_raster-1.0.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b922fe46c5ab1555f07c1b61efdb7e4c8c2818bee6a18d5c015a9032c6561e16
MD5 56802de2f5d6a7db583d5548cbf2912b
BLAKE2b-256 ddca56671b642972b7ab6d9bd84be4e83c4e3af7995e6b9c67df0994ca8ca079

See more details on using hashes here.

Provenance

The following attestation bundles were made for pptx_raster-1.0.0-cp311-cp311-win_amd64.whl:

Publisher: release.yml on codevartech/pptx-raster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pptx_raster-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pptx_raster-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5d78ce24c986a8b5cb7616ff6c5fed442154466e9f38732e3b908fb8b83ac196
MD5 732de385da25d779c996674164532b19
BLAKE2b-256 2190b7d9e99fffbb95d093d0d61a4435fcf73792bbfc1fdb991fe080ddeaaea9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pptx_raster-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on codevartech/pptx-raster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pptx_raster-1.0.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pptx_raster-1.0.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a151515c6145bce657dae4b7baf36068928de30e461597e04d905c75ed08568e
MD5 78fb52a331ac1b7f3d56f1d8cea31071
BLAKE2b-256 8a3020d0918b7f5601b7543c4cba24adc565eabfd6b525b9c3b8e938163013c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pptx_raster-1.0.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on codevartech/pptx-raster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pptx_raster-1.0.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pptx_raster-1.0.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 36ec3f8dce5b514645cfec7ac406ce9b59b95aff2a33a447126fb31d5d461b9b
MD5 2f18d52f545ddb8a109a75afac2edc54
BLAKE2b-256 d1907ae948598d7423c7ef4de74e2413e8807bbc510d17b862f6ff04e8817256

See more details on using hashes here.

Provenance

The following attestation bundles were made for pptx_raster-1.0.0-cp310-cp310-win_amd64.whl:

Publisher: release.yml on codevartech/pptx-raster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pptx_raster-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pptx_raster-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8f6ee5aa2b3c5141735139c7a37e6bfababcae20881a938adebdf20ecefac69e
MD5 f0304f37a8042014802f595f7248c60f
BLAKE2b-256 9a9e6e9d5e7f44587dca2972148a31bb45278f00f7c2a3c457312ba848f4afad

See more details on using hashes here.

Provenance

The following attestation bundles were made for pptx_raster-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on codevartech/pptx-raster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pptx_raster-1.0.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pptx_raster-1.0.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e8ef49a546320015fc75a2bed31cd9595ceb47abda857d03565c4dba0c9ab2f8
MD5 faaafe16cf90575ef26d705acda986ca
BLAKE2b-256 6ba068d45c87d1ee78d86f348d22c80eaa662604bdb62d79ee7ad9e65a8dce29

See more details on using hashes here.

Provenance

The following attestation bundles were made for pptx_raster-1.0.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on codevartech/pptx-raster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page