Generate and manipulate Open XML PowerPoint (.pptx) files
python-pptx is a Python library for creating and updating PowerPoint (.pptx) files.
A typical use would be generating a customized PowerPoint presentation from database content, downloadble by clicking a link in a web application. Several developers have used it to automate production of presentation-ready engineering status reports based on information held in their work management system. It could also be used for making bulk updates to a library of presentations or simply to automate the production of a slide or two that would be tedious to get right by hand.
More information is available in the python-pptx documentation.
Browse examples with screenshots to get a quick idea what you can do with python-pptx.
- Hotfix: failed to load certain presentations containing images with uppercase extension
- Add read/write font color property supporting RGB, theme color, and inherit color types
- Add font typeface and italic support
- Add text frame margins and word-wrap
- Add support for external relationships, e.g. linked spreadsheet
- Add hyperlink support for text run in shape and table cell
- Add fill color and brightness for shape and table cell, fill can also be set to transparent (no fill)
- Add read/write position and size properties to shape and picture
- Replace PIL dependency with Pillow
- Restructure modules to better suit size of library
- Add read/write access to core document properties
- Hotfix to accomodate connector shapes in _AutoShapeType
- Hotfix to allow customXml parts to load when present
- Add paragraph alignment property (left, right, centered, etc.)
- Add vertical alignment within table cell (top, middle, bottom)
- Add table cell margin properties
- Add table boolean properties: first column (row header), first row (column headings), last row (for e.g. totals row), last column (for e.g. row totals), horizontal banding, and vertical banding.
- Add support for auto shape adjustment values, e.g. change radius of corner rounding on rounded rectangle, position of callout arrow, etc.
- Add support for auto shapes (e.g. polygons, flowchart symbols, etc.)
- Add support for table shapes
- Add indentation support to textbox shapes, enabling multi-level bullets on bullet slides.
- Add support for opening and saving a presentation from/to a file-like object.
- Refactor XML handling to use lxml objectify
- Add support for Python 2.6
- Add images from a stream (e.g. StringIO) in addition to a path, allowing images retrieved from a database or network resource to be inserted without saving first.
- Expand text methods to accept unicode and UTF-8 encoded 8-bit strings.
- Fix potential install bug triggered by importing __version__ from package __init__.py file.
First non-alpha release with basic capabilities:
- open presentation/template or use built-in default template
- add slide
- set placeholder text (e.g. bullet slides)
- add picture
- add text box