Skip to main content

PowerPoint Template System

A comprehensive template abstraction system for creating professional business presentations with consistent styling, reusable components, and flexible templating.

🚀 Features

  • Business-Focused Templates: Pre-built templates for common business scenarios (Executive Summary, Sales Pitch, Investor Deck, Project Reports)
  • 16:9 Widescreen Support: Modern aspect ratio for professional presentations
  • Modular Component System: Reusable header, content, and footer components
  • Enhanced DSL: Business-oriented domain-specific language for presentation definition
  • Visual Enhancements: Hero artwork, gradient backgrounds, actual charts, and modern typography
  • Theme System: Professional color palettes and styling configurations
  • Chart Integration: Real data visualizations instead of placeholders
  • Command Line Interface (CLI): Powerful CLI for generating presentations from JSON configurations
  • 2 JSON Template System: Separated style and content templates for maximum flexibility and reusability
  • Modern Styling Features: Gradient backgrounds, shadow effects, border styles, custom typography, and badge systems
  • Card-Based Layouts: Professional card grids with images, badges, and modern styling
  • AI Agent Support: Comprehensive guide and tools for AI agents to create templates

📦 Installation

Prerequisites

  • Python 3.7+
  • pip

Install Dependencies

pip install -r requirements.txt

Install Package

# For development
pip install -e .

# For production
pip install .

🎯 Quick Start

Command Line Interface (CLI)

The PowerPoint Template System includes a powerful CLI for generating presentations from JSON configurations:

# Generate from single JSON file
ppt-template generate examples/presentation_config.json

# Generate from separated style and content templates (single command)
ppt-template merge-generate style.json content.json

# Generate from separated templates with saved merged config
ppt-template merge-generate style.json content.json --merged merged.json

# List available presentations
ppt-template list examples/presentation_config.json

# Generate all presentations
ppt-template generate examples/presentation_config.json --all

# Create sample presentations
ppt-template samples

# Get AI agent guide
ppt-template ai-guide

2 JSON Template System

The system supports separated style and content templates for maximum flexibility:

Style Template (style.json)

{
  "presentation_style": {
    "id": "business_style",
    "theme": "corporate_blue",
    "slide_structure": [
      {
        "id": "title_slide",
        "type": "title",
        "style": {
          "background": "gradient",
          "gradient_colors": ["#1f4e79", "#2c5aa0"],
          "title_color": "#ffffff"
        }
      },
      {
        "id": "content_slide",
        "type": "card_grid",
        "style": {
          "card_style": {
            "rounded_corners": true,
            "shadow": true,
            "badge_style": {
              "colors": {"success": "#28a745", "warning": "#ffc107"}
            }
          }
        }
      }
    ]
  }
}

Content Template (content.json)

{
  "presentation_content": {
    "id": "business_presentation",
    "title": "Company Overview",
    "author": "John Smith",
    "slides": [
      {
        "id": "title_slide",
        "content": {
          "title": "Company Overview",
          "subtitle": "Q4 2024"
        }
      },
      {
        "id": "content_slide",
        "content": {
          "title": "Key Achievements",
          "cards": [
            {
              "title": "Revenue Growth",
              "description": "40% YoY increase",
              "badge": {"text": "SUCCESS", "color": "#28a745"}
            }
          ]
        }
      }
    ]
  }
}

Merge and Generate

# Single command (recommended)
ppt-template merge-generate style.json content.json

# With saved merged configuration
ppt-template merge-generate style.json content.json --merged merged.json

# Manual two-step process
python examples/merge_style_content.py style.json content.json merged.json
ppt-template generate merged.json

Basic Usage (Python API)

from powerpoint_templates import BusinessDSLBuilder, BusinessTheme, EnhancedVisualGenerator

# Create a presentation using the DSL builder
presentation = (BusinessDSLBuilder()
    .set_metadata(
        title="My Business Presentation",
        author="John Smith",
        company="Acme Corp"
    )
    .set_theme(BusinessTheme.CORPORATE_BLUE)
    .add_title_slide()
    .add_content_slide(
        "overview",
        "Company Overview",
        "bullet_list",
        {"items": ["Founded in 2020", "50+ employees", "Global presence"]}
    )
    .add_thank_you_slide()
    .build())

# Generate the PowerPoint file
generator = EnhancedVisualGenerator()
output_file = generator.create_presentation_from_dsl(presentation, "my_presentation.pptx")
print(f"Created: {output_file}")

Using Pre-built Templates

from powerpoint_templates import BusinessTemplateExamples, EnhancedVisualGenerator

# Create a quarterly business review
qbr = BusinessTemplateExamples.create_quarterly_business_review()

# Generate the presentation
generator = EnhancedVisualGenerator()
generator.create_presentation_from_dsl(qbr, "quarterly_review.pptx")

Advanced Usage with Custom Components

from powerpoint_templates import (
    ComponentLayout, HeaderComponent, ContentComponent, FooterComponent,
    ComponentBounds, ComponentStyle
)

# Create custom layout
layout = ComponentLayout()

# Add custom header
header = HeaderComponent(
    bounds=ComponentBounds(0, 0, 13.33, 1.2),
    style=ComponentStyle(font_size=24, font_bold=True)
)
layout.add_component(header)

# Add content and footer components
layout.add_component(ContentComponent())
layout.add_component(FooterComponent())

# Export layout configuration
layout.export_layout("custom_layout.json")

📊 Available Templates

Business Templates

  • Executive Summary: C-level presentations with key metrics and strategic insights
  • Sales Pitch: Customer-focused presentations with problem-solution structure
  • Investor Pitch Deck: Investment-ready presentations with market analysis and funding asks
  • Project Status Report: Comprehensive project reporting with status tracking
  • Quarterly Business Review: Financial performance and strategic planning presentations

Themes

  • Corporate Blue: Traditional corporate styling with blue accents
  • Executive Dark: Dark, sophisticated theme for executive presentations
  • Modern Minimal: Clean, minimal design with subtle colors
  • Startup Vibrant: Energetic theme with vibrant colors
  • Consulting Clean: Professional consulting-style theme
  • Financial Professional: Conservative theme for financial presentations

🏗️ Architecture

powerpoint_template_system/
├── src/powerpoint_templates/          # Core system modules
│   ├── template_system_design.py      # Template abstraction system
│   ├── enhanced_business_dsl.py       # Business DSL implementation
│   ├── modular_components.py          # Component system
│   ├── business_template_examples.py  # Pre-built templates
│   ├── enhanced_visual_generator.py   # Visual presentation generator
│   ├── cli.py                        # Command line interface
│   └── integration_examples.py        # Integration utilities
├── docs/                              # Documentation
├── examples/                          # Example presentations and code
│   ├── merge_style_content.py         # Template merge script
│   ├── modern_styling_*.json          # Modern styling templates
│   └── ai_agent_*.json               # AI agent templates
├── tests/                            # Test suite
└── config/                           # Configuration files

Separated Templates Workflow

  1. Style Template: Defines visual design, colors, fonts, layouts
  2. Content Template: Contains text, images, data, structure
  3. Merge Script: Combines style and content into complete configuration
  4. CLI Generation: Creates PowerPoint presentations from merged config
  5. Reusability: Style templates can be reused with different content

📚 Documentation

CLI Commands

# Generate presentations from JSON
ppt-template generate <config.json> [presentation_name]

# Merge and generate from separated templates
ppt-template merge-generate <style.json> <content.json>

# Merge and generate with saved merged config
ppt-template merge-generate <style.json> <content.json> --merged <merged.json>

# List available presentations in config
ppt-template list <config.json>

# Generate all presentations in config
ppt-template generate <config.json> --all

# Create sample presentations
ppt-template samples

# Get AI agent guide
ppt-template ai-guide

# Get help
ppt-template --help

Template System

  • Single JSON: Complete presentation configuration in one file
  • Separated Templates: Style and content in separate files for reusability
  • Merge Script: Combine style and content templates into complete configuration
  • Modern Styling: Gradients, shadows, borders, typography, and badges

🎨 Visual Features

Enhanced Presentations Include:

  • 16:9 Widescreen Format: Modern aspect ratio (13.33" x 7.5")
  • Hero Artwork: Geometric shapes, gradients, and visual elements
  • Actual Charts: Real data visualizations with theme coordination
  • Enhanced Typography: Segoe UI font family with improved hierarchy
  • Professional Styling: Card-based layouts, shadows, and modern design
  • Gradient Backgrounds: Linear, diagonal, and radial gradients
  • Modern Card System: Rounded corners, shadows, badges, and image integration
  • Badge System: Configurable badges with colors, positions, and sizes
  • Border Styles: Solid, dashed, and dotted borders with custom colors
  • Custom Typography: Font families, sizes, colors, and line spacing

Before vs After Comparison:

Feature Before After Improvement
Aspect Ratio 4:3 Standard 16:9 Widescreen +33% screen utilization
Charts Text placeholders Actual data charts +200% data clarity
Backgrounds Solid colors Gradient effects +100% visual appeal
Typography Basic Calibri Enhanced Segoe UI +50% readability

🔧 Development

Running Tests

pytest tests/

Code Formatting

black src/
flake8 src/

Building Documentation

cd docs/
sphinx-build -b html . _build/

📈 Performance

  • Generation Speed: 60-70% faster than traditional approaches
  • File Size: Optimized for professional quality while maintaining reasonable file sizes
  • Memory Usage: Efficient component-based architecture
  • Scalability: Handles enterprise-scale presentation generation

🎯 Benefits of 2 JSON System

Flexibility

  • Style Reuse: Same visual design with different content
  • Content Reuse: Same content with different visual styles
  • Mix and Match: Combine any style template with any content template

Maintainability

  • Clear Separation: Style and content have distinct responsibilities
  • Easy Updates: Modify style without touching content
  • Easy Changes: Modify content without touching style
  • Focused Templates: Each template has a specific purpose

AI Agent Support

  • Template Creation: AI agents can focus on content creation
  • Style Application: Pre-built style templates ensure consistency
  • Merge Workflow: Simple process to combine AI-generated content with styles
  • Comprehensive Guide: Built-in AI agent guide with examples

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Built with python-pptx for PowerPoint generation
  • Inspired by modern presentation design principles
  • Developed for professional business communication needs

📞 Support

For questions, issues, or contributions:


PowerPoint Template System - Creating professional presentations made simple.

Release files for powerpoint-template-system 1.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for powerpoint-template-system 1.0.6
File Size Uploaded
powerpoint-template-system-1.0.6.tar.gz 112.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for powerpoint-template-system 1.0.6
File Interpreter ABI Platform
powerpoint_template_system-1.0.6-py3-none-any.whl Python 3 none any Details

Total release size: 164.5 kB

Release files / powerpoint-template-system-1.0.6.tar.gz

Download URL powerpoint-template-system-1.0.6.tar.gz
Size 112.2 kB
Tags Source
SHA-256 checksum
How to use checksums
24fee3829371fb18130df1f1a2f482b2b77be6f036323aeecfd6be5a70c27a3f
BLAKE2b-256 checksum
How to use checksums
dde78c1304fa8d72e2f8edd3f72109e74fea5f7d9f169d7b4de910fc83757970
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.8

Release files / powerpoint_template_system-1.0.6-py3-none-any.whl

Download URL powerpoint_template_system-1.0.6-py3-none-any.whl
Size 52.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
475f68d4f7ed8c1c6a8d3be6cb662399d69b620231e4d7d5425f2f7a48b797a5
BLAKE2b-256 checksum
How to use checksums
0d7747d830ae98e090294fbb7577779bac5f503c38168c5d81653734aa039850
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.8

Release history Release notifications | RSS feed

This release

1.0.6 This release

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page