Convert your draw.io diagrams to PowerPoint presentations! 🎨➡️📊
drawio2pptx is a Python package that converts draw.io (diagrams.net) files to PowerPoint (.pptx) presentations. It performs conversion from mxGraph (the underlying format used by draw.io) to PresentationML (the XML format used by PowerPoint).
Important: One draw.io file corresponds to one PowerPoint presentation. Each page/diagram within the draw.io file becomes a separate slide in the resulting PowerPoint presentation.
Live Demo → — See conversion examples (draw.io vs PowerPoint) in your browser.
- ✅ Convert draw.io files (.drawio, .xml) to PowerPoint (.pptx)
- ✅ One file = One presentation: One draw.io file becomes one PowerPoint presentation
- ✅ One page/diagram = One slide: Each page/diagram becomes a separate slide
- ✅ Support for multiple pages/diagrams in a single file
- ✅ Automatic page size configuration (pageWidth, pageHeight)
- ✅ Z-order preserved (shapes and connectors drawn in draw.io order; connectors kept above endpoints when needed)
- Basic: Rectangle, Square, Ellipse, Circle, Rounded Rectangle, Triangle (isosceles), Right Triangle, Hexagon, Octagon, Pentagon, Rhombus, Parallelogram, Trapezoid, Star (4/5/6/8-point), Smiley
- 3D: Cylinder
- Special: Cloud, Swimlane (horizontal/vertical with header), BPMN (rhombus / parallel gateway)
- Flowchart: Process, Decision, Data, Document, Predefined Process, Internal Storage, Punched Tape, Stored Data, Manual Input, Extract, Merge
- Connectors: Straight and orthogonal (elbow) lines; connection points (exit/entry); line styles (dashed, dotted, etc.); arrows (type, size, fill; open oval supported)
- Images: SVG image support — SVG images are automatically converted to PNG format and embedded in PowerPoint presentations with high-quality rendering (configurable DPI, default 192 DPI)
- Colors: Hex (#RRGGBB, #RGB), RGB, light-dark format
- Fill: Solid, gradient, transparent, default theme; corner radius (rounded rectangles)
- Stroke: Color, width, styles (solid, dashed, dotted, dash-dot, dash-dot-dot)
- Text: Font size, family, bold/italic/underline, horizontal/vertical alignment, padding, wrapping; plain and rich text (HTML: font, b, i, u, strong, em); line breaks; font color from style/HTML
- Effects: Shadow, text background color (highlight)
This project is in alpha and under active development. For a detailed checklist of implemented and planned features, see FEATURES.md.
- Python 3.8 or higher
- python-pptx >= 0.6.21: Used for creating and writing PowerPoint (.pptx) files in PresentationML format
- lxml >= 4.6.0: Used for parsing and processing XML/mxGraph data from draw.io files, and for directly editing PresentationML XML elements that are not supported by python-pptx (e.g., gradients, highlights, advanced styling)
- cairosvg >= 2.7.0 (default): Used for converting SVG images to PNG for embedding in PowerPoint. Optional: resvg and affine — set
config.svg_backend = 'resvg'and install withpip install drawio2pptx[resvg]to use resvg instead.
pip install python-pptx lxml cairosvgTo use resvg as the SVG backend instead of cairosvg:
pip install drawio2pptx[resvg]
# and in code: default_config.svg_backend = 'resvg'Install the package in development mode to use the drawio2pptx command:
pip install -e .Or install from PyPI:
pip install drawio2pptxAfter installation, use the drawio2pptx command:
drawio2pptx sample.drawio sample.pptxdrawio2pptx sample.drawio sample.pptxIf the command is not found, you can run it as a Python module:
python -m drawio2pptx.main sample.drawio sample.pptxYou can use the --analyze (or -a) option to display analysis results after conversion:
drawio2pptx sample.drawio sample.pptx --analyzedrawio2pptx supports AWS Architecture Icons for draw.io shapes. When a draw.io file contains AWS icon shapes without embedded image data, drawio2pptx resolves the icons by providing a mapping dictionary that references external icon sources.
Important: drawio2pptx does not redistribute AWS icon images. It only provides a mapping dictionary that references publicly available icon sources. The actual icon images are fetched from the following sources at conversion time:
- MKAbuMattar/aws-icons — Official AWS Architecture Icons (npm package, CDN)
- weibeld/aws-icons-svg — AWS Icons SVG (raw GitHub)
Note: Icon images are subject to the licenses and terms of their respective sources. drawio2pptx is not affiliated with AWS or any of the icon source repositories.
- Live Demo — Compare draw.io diagrams and converted PowerPoint side-by-side in the browser (Bar chart, Class diagram, Swimlane, Flowchart, Process bar, etc.).
The sample/ directory in this repository contains .drawio files used for demonstration and testing. They were created by the author and do not include any source code or assets from diagrams.net (draw.io). Any third-party icons used in the diagrams remain the property of their respective owners.
Issues are welcome and encouraged for reporting bugs, proposing features, or sharing ideas.
Currently, pull requests are not accepted, as development is being handled solely by the maintainer.
MIT License
See LICENSE file for details (or check pyproject.toml for license information).