Skip to main content

chart_generation/
chart_generation.rs

1//! Example demonstrating chart generation in PPTX presentations
2
3use ppt_rs::generator::{
4    create_pptx_with_content, SlideContent,
5};
6
7fn main() -> Result<(), Box<dyn std::error::Error>> {
8    // Create presentation with slides containing chart data
9    let slides = vec![
10        SlideContent::new("Sales Dashboard 2024")
11            .add_bullet("Q1-Q4 Performance Comparison")
12            .add_bullet("Year-over-year growth analysis")
13            .add_bullet("Strategic insights and recommendations"),
14        
15        SlideContent::new("Bar Chart: Quarterly Sales")
16            .add_bullet("2023 vs 2024 comparison")
17            .add_bullet("Q4 shows strongest performance")
18            .add_bullet("Overall growth: 20% YoY"),
19        
20        SlideContent::new("Line Chart: Revenue Trend")
21            .add_bullet("6-month revenue tracking")
22            .add_bullet("Consistent growth trajectory")
23            .add_bullet("Exceeding targets in most months"),
24        
25        SlideContent::new("Pie Chart: Market Distribution")
26            .add_bullet("Product A leads with 35% market share")
27            .add_bullet("Products B & C equally competitive")
28            .add_bullet("Product D growth opportunity"),
29    ];
30
31    // Generate the PPTX file
32    let pptx_data = create_pptx_with_content("Sales Dashboard", slides)?;
33    std::fs::write("chart_example.pptx", pptx_data)?;
34
35    println!("✓ Created chart_example.pptx with:");
36    println!("  - Title slide with overview");
37    println!("  - Bar chart (Q1-Q4 sales comparison)");
38    println!("  - Line chart (monthly revenue trend)");
39    println!("  - Pie chart (market share distribution)");
40    println!("\nNote: Chart XML structures are generated. For full chart functionality,");
41    println!("additional integration with slide generation is needed.");
42
43    Ok(())
44}