Skip to main content

PPTX generation, QA verification, and template editing toolkit

Project description

illuma-presentx

PPTX generation, QA verification, and template editing toolkit for LLM-powered presentation workflows.

Installation

# Core (XML tools, thumbnail generation)
pip install git+https://github.com/illuma-ai/illuma-presentx.git

# With text extraction support
pip install "illuma-presentx[text] @ git+https://github.com/illuma-ai/illuma-presentx.git"

# With layout analysis support
pip install "illuma-presentx[layout] @ git+https://github.com/illuma-ai/illuma-presentx.git"

# All optional dependencies
pip install "illuma-presentx[all] @ git+https://github.com/illuma-ai/illuma-presentx.git"

Quick Start

CLI Usage

# Run the PPTX workflow runner
presentx --help

# Generate thumbnails from a presentation
python -m presentx.thumbnail input.pptx

# Unpack a PPTX for editing
python -m presentx.office.unpack input.pptx unpacked/

# Repack after editing
python -m presentx.office.pack unpacked/ output.pptx --original input.pptx

PPTXWorkflow Usage

from presentx import PPTXWorkflow

workflow = PPTXWorkflow(work_dir="/mnt/data")

# Unpack a template
workflow.unpack("template.pptx", "unpacked/")

# Generate thumbnails for analysis
workflow.thumbnail("template.pptx")

# Clean orphaned files after editing
workflow.clean("unpacked/")

# Repack into final output
workflow.pack("unpacked/", "output.pptx", original="template.pptx")

Architecture

src/presentx/
  __init__.py          # PPTXWorkflow, public API
  pptx_runner.py       # CLI entry point
  thumbnail.py         # Slide thumbnail grid generation
  add_slide.py         # Duplicate/create slides from layouts
  clean.py             # Remove orphaned slides, media, rels
  office/
    unpack.py          # Extract and pretty-print PPTX XML
    pack.py            # Validate, repair, and repack PPTX
    soffice.py         # LibreOffice wrapper for PDF conversion
    schemas/           # OOXML XSD schemas for validation
  js/
    merge_decks.cjs    # Multi-part deck merger (Node.js)
  docs/
    SKILL.md           # Main skill guide (creation, QA, design)
    pptxgenjs.md       # PptxGenJS API reference and patterns
    editing.md         # Template editing workflow

Available Tools

Tool Purpose
thumbnail.py Generate visual grid of slide thumbnails
unpack.py Extract PPTX to directory with pretty-printed XML
pack.py Repack directory into validated PPTX
add_slide.py Duplicate a slide or create from a layout
clean.py Remove orphaned slides, media, and relationships
soffice.py Convert PPTX to PDF via LibreOffice
merge_decks.cjs Merge multi-part PPTX files (Node.js)

Workflows

Create from Scratch (PptxGenJS)

Use when no template is available. See docs/pptxgenjs.md for the full PptxGenJS API reference including shapes, charts, icons, and common pitfalls.

Edit from Template

Use when modifying an existing presentation. See docs/editing.md for the unpack/edit/pack workflow, XML editing patterns, and formatting rules.

QA Verification

Every generated presentation should go through content QA (markitdown text check) and visual QA (slide-to-image conversion + inspection). See docs/SKILL.md for the full QA protocol.

Dependencies

Core: defusedxml, lxml, Pillow

Optional:

  • markitdown[pptx] -- text extraction from PPTX files
  • python-pptx -- layout analysis and programmatic slide manipulation

External (not pip-managed):

  • Node.js + pptxgenjs -- creating presentations from scratch
  • LibreOffice (soffice) -- PDF conversion for visual QA
  • Poppler (pdftoppm) -- PDF to image conversion

License

MIT

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

illuma_presentx-0.1.0.tar.gz (164.2 kB view details)

Uploaded Source

Built Distribution

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

illuma_presentx-0.1.0-py3-none-any.whl (196.5 kB view details)

Uploaded Python 3

File details

Details for the file illuma_presentx-0.1.0.tar.gz.

File metadata

  • Download URL: illuma_presentx-0.1.0.tar.gz
  • Upload date:
  • Size: 164.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for illuma_presentx-0.1.0.tar.gz
Algorithm Hash digest
SHA256 06a305192aeb1078ca30a541394aed05cfc4f589b2c822e2a98a7aea36ad639d
MD5 745c74f0c13353f4201b047ff2494d7e
BLAKE2b-256 f2866546063aa0e688ef52814e11629dd6f297e503f32607413462820aa883b7

See more details on using hashes here.

File details

Details for the file illuma_presentx-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for illuma_presentx-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 80c585f4a08bd06270e71bd249b91bcc556c2e0f02f141bef808a6e2d6864d31
MD5 fd51d4e7c1d46d7b35abd5716a8618d7
BLAKE2b-256 d6fe381f2334fdd254e95b3ac520ac5fa3d6ec15ada8edb95d5813bd56b57c9a

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