Skip to main content

Convert draw.io (diagrams.net) files to PowerPoint (.pptx) format - mxGraph to PresentationML converter

Project description

drawio2pptx

License: MIT PyPI - Python Version GitHub Release PyPi Version Downloads

Convert your draw.io diagrams to PowerPoint presentations! 🎨➡️📊

📖 Overview

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.


✨ Features

🔧 Core Functionality

  • ✅ 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)

🔷 Shape Support

  • 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)

🎨 Styling & Formatting

  • 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)

📊 Feature Status

This project is in alpha and under active development. For a detailed checklist of implemented and planned features, see FEATURES.md.


📦 Installation

Requirements

  • 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)

Install Dependencies

pip install python-pptx lxml

Install as Package (Development Mode)

Install the package in development mode to use the drawio2pptx command:

pip install -e .

Or install from PyPI:

pip install drawio2pptx

🚀 Usage

Command Line Interface

After installation, use the drawio2pptx command:

drawio2pptx sample.drawio sample.pptx

Example

drawio2pptx sample.drawio sample.pptx

Alternative: Python Module

If the command is not found, you can run it as a Python module:

python -m drawio2pptx.main sample.drawio sample.pptx

Analysis Mode

You can use the --analyze (or -a) option to display analysis results after conversion:

drawio2pptx sample.drawio sample.pptx --analyze

📄 Samples & Demo

  • 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.


🤝 Contributing

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.


📝 License

MIT License

See LICENSE file for details (or check pyproject.toml for license information).


👨‍💻 Author

mashu3

Project details


Download files

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

Source Distribution

drawio2pptx-0.0.5.tar.gz (80.7 kB view details)

Uploaded Source

Built Distribution

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

drawio2pptx-0.0.5-py3-none-any.whl (63.5 kB view details)

Uploaded Python 3

File details

Details for the file drawio2pptx-0.0.5.tar.gz.

File metadata

  • Download URL: drawio2pptx-0.0.5.tar.gz
  • Upload date:
  • Size: 80.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for drawio2pptx-0.0.5.tar.gz
Algorithm Hash digest
SHA256 2e3423c3b10272dd1cabc5cd275b2ee2b6399cb9dc8308c2d3babd55f35c243f
MD5 4a9d6adbe5394c0afa14a022d7ae2cce
BLAKE2b-256 7c66d9c0a4feefbd1b96b6bfa1e735b8f83c2861426678d33bd26ad40dcbe5a4

See more details on using hashes here.

File details

Details for the file drawio2pptx-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: drawio2pptx-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 63.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for drawio2pptx-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 8e594c8b1c38472f78c8fd1bab983bdc11a33afffb1e1015ae18cd7929ff0d6a
MD5 662572c4fbb94950250ee9c8119336c4
BLAKE2b-256 27205e549dd9930590acd989d1d85a5cf4ae4659622e843b7b0545401e4efbd0

See more details on using hashes here.

Supported by

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