Skip to main content

rpptx-py

Native rpptx for Python

rpptx gives Python applications a native PPTX workflow for creating, opening, editing, and saving PowerPoint-compatible presentations. It also supports comments, speaker notes, and deterministic rendering. It works directly with OOXML packages and does not require Microsoft PowerPoint, LibreOffice, a conversion service, or a Java or .NET runtime.

The package uses the Rust rpptx presentation engine and ships with a default presentation template for from-scratch deck creation.

Installation

Install the current release from PyPI:

python -m pip install rpptx

rpptx requires CPython 3.9 or newer. Its platform wheels use the Python 3.9 stable ABI, so one wheel supports multiple compatible Python versions. Source installation requires a Rust toolchain and maturin.

Quick start

from rpptx import Presentation
from rpptx.util import Inches

presentation = Presentation()
slide = presentation.slides.add_slide(presentation.slide_layouts[6])
text_box = slide.shapes.add_textbox(
    Inches(1), Inches(1), Inches(8), Inches(1)
)
text_box.text = "Quarterly review"
presentation.save("review.pptx")

pdf = presentation.to_pdf()
with open("review.pdf", "wb") as output:
    output.write(pdf)

Capabilities

  • File and byte-based PPTX input and output.
  • Slide layouts, slides, placeholders, shapes, text frames, paragraphs, runs, pictures, preset shapes, and tables.
  • Deterministic PDF and PNG output for slides and speaker notes.
  • Speaker-note text plus modern comment authors, threads, replies, and ordered comment movement.
  • Read speaker-note text and inspect or mutate modern comment threads.
  • Python collections with negative indexes, slices, iteration, and explicit stale-handle errors after structural changes.

Use it when

Use rpptx when a Python service, desktop application, or automation task needs to create, inspect, update, comment on, or render presentations locally. It is suited to generated decks, template workflows, review, and previews.

Relationship

The Python API is intentionally focused. It covers the documented rpptx surface and the reviewed python-pptx Getting Started workflows, but it is not a drop-in replacement for every python-pptx method or private lxml object.

Example

Open and inspect an existing presentation:

from rpptx import Presentation

presentation = Presentation("deck.pptx")
print(len(presentation.slides))
png = presentation.render_slide_to_png(0)
for slide in presentation.slides:
    print(slide.notes_text or "")

Type checking

The distribution includes hand-written extension stubs and a py.typed marker. Editors and type checkers can inspect concrete presentation, slide, shape, text, table, notes, and comment types.

python -m pip install mypy
python -m mypy your_application.py

The release gate validates the installed package with strict mypy and stubtest in addition to its runtime suite.

License

Licensed under either the MIT License or the Apache License 2.0, at your option.

Metadata

Release files for rpptx 0.12.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rpptx 0.12.1
File Size Uploaded
rpptx-0.12.1.tar.gz 5.8 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for rpptx 0.12.1
File
rpptx-0.12.1-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
rpptx-0.12.1-cp39-abi3-musllinux_1_2_x86_64.whl CPython 3.9 abi3 Linux musl 1.2+ x86-64 Details
rpptx-0.12.1-cp39-abi3-manylinux_2_28_x86_64.whl CPython 3.9 abi3 Linux glibc 2.28+ x86-64 Details
rpptx-0.12.1-cp39-abi3-manylinux_2_28_aarch64.whl CPython 3.9 abi3 Linux glibc 2.28+ ARM64 Details
rpptx-0.12.1-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details
rpptx-0.12.1-cp39-abi3-macosx_10_12_x86_64.whl CPython 3.9 abi3 macOS 10.12+ x86-64 Details

Total release size: 67.9 MB

Release files / rpptx-0.12.1.tar.gz

Download URL rpptx-0.12.1.tar.gz
Size 5.8 MB
Tags Source
SHA-256 checksum
How to use checksums
990121d23f46434d5070ecb311a490d77f964f0bdf9ad5532993095b70262a3a
BLAKE2b-256 checksum
How to use checksums
03d5ecc760a592899697c1e9d0e53d8bc52e1ae005054ff6d285bbb266de4879
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / rpptx-0.12.1-cp39-abi3-win_amd64.whl

Download URL rpptx-0.12.1-cp39-abi3-win_amd64.whl
Size 10.5 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
fc4ab117c64f71fdfcc1bccbe59c8eac202daf00bb94febf71b05a9a56c72812
BLAKE2b-256 checksum
How to use checksums
80ffd7d1632b55b74720ee847a978e88f2a45187960455033da439c5ccccaa29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / rpptx-0.12.1-cp39-abi3-musllinux_1_2_x86_64.whl

Download URL rpptx-0.12.1-cp39-abi3-musllinux_1_2_x86_64.whl
Size 10.6 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
3f3db576b9803e4df258be1f8cec85687c6c24a971f1fe68087634abad18f5f1
BLAKE2b-256 checksum
How to use checksums
3167e6c98c75825ca40a229b9d128403f3ddead1c3ded68dbc43d929e7b7cf42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / rpptx-0.12.1-cp39-abi3-manylinux_2_28_x86_64.whl

Download URL rpptx-0.12.1-cp39-abi3-manylinux_2_28_x86_64.whl
Size 10.4 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
cba7e80946ab6bd8f8c5465928d9dea8d6e5b6be26f774f620341f29bf06f203
BLAKE2b-256 checksum
How to use checksums
d5e5c7ccbd1a9d849d389cded518aadb226f22f4ddd85daa50e81dd3f8ca4a63
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / rpptx-0.12.1-cp39-abi3-manylinux_2_28_aarch64.whl

Download URL rpptx-0.12.1-cp39-abi3-manylinux_2_28_aarch64.whl
Size 10.2 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
627761802c1d9cb15d9176c253ba6b2b1ac337e1218dc40aaf931e762ff2f7f7
BLAKE2b-256 checksum
How to use checksums
ad4d7f007396c13d09890c9490b8624fa759d2c0b19fcacb7d8a99369fb3a769
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / rpptx-0.12.1-cp39-abi3-macosx_11_0_arm64.whl

Download URL rpptx-0.12.1-cp39-abi3-macosx_11_0_arm64.whl
Size 10.2 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
13f484b0babef4c38de3ae05dd30a9f106a7fe40bf346a47f85d793db84efe9f
BLAKE2b-256 checksum
How to use checksums
f04bdc5bbfd1c62f0f708fc6b9f982f21b809cf8c373bc8f0986fadfa6c27b13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / rpptx-0.12.1-cp39-abi3-macosx_10_12_x86_64.whl

Download URL rpptx-0.12.1-cp39-abi3-macosx_10_12_x86_64.whl
Size 10.3 MB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
73e6b35ecaa93f484a45e7ad0eece5923fc420c81cd4cbac8304ea0203029c4c
BLAKE2b-256 checksum
How to use checksums
17132ec0063ef875bc04781aecea3e283df1eba2e70a4ae366ba93f1e9b98784
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release history Release notifications | RSS feed

0.14.2

7 release files

0.14.1

7 release files

This release

0.12.1 This release

7 release files

0.11.0

7 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page