A comprehensive template system for creating professional business presentations with modern styling, cards, and badges
Project description
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
python examples/merge_style_content.py style.json content.json merged.json
ppt-template generate 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
# Merge style and content templates
python examples/merge_style_content.py style.json content.json merged.json
# Generate presentation
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
- Style Template: Defines visual design, colors, fonts, layouts
- Content Template: Contains text, images, data, structure
- Merge Script: Combines style and content into complete configuration
- CLI Generation: Creates PowerPoint presentations from merged config
- Reusability: Style templates can be reused with different content
๐ Documentation
- Comprehensive Documentation - Complete API reference and usage guide
- Visual Enhancements Guide - Details on visual improvements
- Implementation Guide - Implementation strategy and best practices
- Code Analysis - Technical architecture analysis
CLI Commands
# Generate presentations from JSON
ppt-template generate <config.json> [presentation_name]
# 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
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - 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:
- Email: templates@cpro.com
- Documentation: docs/comprehensive_documentation.md
- Examples: examples/
PowerPoint Template System - Creating professional presentations made simple.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file powerpoint-template-system-1.0.5.tar.gz.
File metadata
- Download URL: powerpoint-template-system-1.0.5.tar.gz
- Upload date:
- Size: 111.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f20ed54aac49edeb8f3b331cd8bca7cdf5810240486ad447fd914d56f2e832a7
|
|
| MD5 |
eacc1de03023b332ab034505e3c8e585
|
|
| BLAKE2b-256 |
f55b41439ddab432b4e2f6312c27cffcb276d001ec90b951e654b50248e1e930
|
File details
Details for the file powerpoint_template_system-1.0.5-py3-none-any.whl.
File metadata
- Download URL: powerpoint_template_system-1.0.5-py3-none-any.whl
- Upload date:
- Size: 51.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a533aedfef327494565b2a310b591d889980e20779e482c8b0d4a43e7aed8a1
|
|
| MD5 |
b96a1ca53c9f235af6816851cdb0c8af
|
|
| BLAKE2b-256 |
0299246b6eae111b82779a69a7c99c7437759e4cc7e14edf83d3fef8516e2eaa
|