An import-compatible, agent-safe fork of python-pptx for creating and editing PowerPoint presentations without silent corruption.
paper-pptx is an import-compatible hard fork of python-pptx for creating and editing PowerPoint (.pptx) presentations. It keeps the pptx import name and upstream object model, and adds structure-aware operations and machine-readable results for automated workflows.
Installation
Use an activated virtual environment.
python -m pip uninstall -y python-pptx paper-pptx
python -m pip install paper-pptx
python -m paper_pptx_doctor
Both distributions provide the pptx import package. Do not install python-pptx and paper-pptx in the same environment.
To return to python-pptx, run the uninstall line above again, then python -m pip install python-pptx.
Quick start
Create a presentation and update its text without flattening untouched run formatting:
from pptx import Presentation
from pptx.edit import replace_text
prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[0])
slide.shapes.title.text = "FY25 plan"
prs.save("deck.pptx")
prs = Presentation("deck.pptx")
result = replace_text(prs, "FY25", "FY26")
prs.save("deck-v2.pptx")
print(result.replacements) # 1
replace_text returns a machine-readable result and refuses unsupported edits before changing the presentation.
Documentation
Read the paper-pptx documentation.
Contributing
Contributions are welcome. See CONTRIBUTING.md.
Acknowledgments
paper-pptx builds on python-pptx by Steve Canny and contributors. This fork preserves their API, license, and attribution.
Citation
If you reference paper-pptx in research or writing:
@software{paper_pptx,
title = {paper-pptx: an agent-first structure editor for PowerPoint files},
author = {{Paper Instruments, Inc.}},
year = {2026},
url = {https://github.com/paper-instruments/paper-pptx}
}
Cite it as a fork of python-pptx by Steve Canny and contributors.
License
MIT, inherited from python-pptx. Original work © 2013 Steve Canny and the python-pptx contributors; fork additions © 2026 Paper Instruments, Inc. See LICENSE.
Metadata
Release files for paper-pptx 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| paper_pptx-0.2.1.tar.gz | 11.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| paper_pptx-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.0 MB
Release files / paper_pptx-0.2.1.tar.gz
| Download URL | paper_pptx-0.2.1.tar.gz |
|---|---|
| Size | 11.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f4f5dec3e34fef85746d507e93665a83fc66ef655055e2ead8af6f1bf8f773b8
|
|
BLAKE2b-256 checksum How to use checksums |
0ea29bb1145155442bd2d852bb91f74ed869345f8f64fa74747ecd7ea821acdf
|
| 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 23, 2026.
Transparency logRelease files / paper_pptx-0.2.1-py3-none-any.whl
| Download URL | paper_pptx-0.2.1-py3-none-any.whl |
|---|---|
| Size | 612.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c61627547bb184e79165267c9d951b731a297a713e3d452bf6ded55e63722d5e
|
|
BLAKE2b-256 checksum How to use checksums |
664276e700ac2f50929c8a03a39e8659e5166ab692188381a016d055388f4d17
|
| 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 23, 2026.
Transparency log