SlideGenerator.Framework 1.1.1

dotnet add package SlideGenerator.Framework --version 1.1.1
                    
NuGet\Install-Package SlideGenerator.Framework -Version 1.1.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SlideGenerator.Framework" Version="1.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SlideGenerator.Framework" Version="1.1.1" />
                    
Directory.Packages.props
<PackageReference Include="SlideGenerator.Framework" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SlideGenerator.Framework --version 1.1.1
                    
#r "nuget: SlideGenerator.Framework, 1.1.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SlideGenerator.Framework@1.1.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SlideGenerator.Framework&version=1.1.1
                    
Install as a Cake Addin
#tool nuget:?package=SlideGenerator.Framework&version=1.1.1
                    
Install as a Cake Tool

SlideGenerator.Framework

A powerful, standalone .NET library for orchestrating the generation of PowerPoint presentations from Excel data sources. It provides high-level abstractions for template manipulation, data extraction, and intelligent image processing.

Modules

The framework is composed of four core modules:

Module Namespace Description
☁️ Cloud SlideGenerator.Framework.Cloud Resolves direct download links from Google Drive, OneDrive, and Google Photos.
📊 Sheet SlideGenerator.Framework.Sheet efficient reading of Excel (.xlsx) and CSV files.
🖼️ Slide SlideGenerator.Framework.Slide PowerPoint manipulation: template loading, slide cloning, text/image replacement.
🧠 Image SlideGenerator.Framework.Image Advanced image processing: Face detection, ROI (Region of Interest) cropping, resizing.

Prerequisites

EmguCV Runtime

This framework relies on EmguCV for computer vision tasks. You must install the native runtime package matching your target OS in the consuming project.

OS Package
Windows (x64) Emgu.CV.runtime.windows
Linux (x64) Emgu.CV.runtime.ubuntu-x64
Linux (ARM) Emgu.CV.runtime.debian-arm
Linux (ARM64) Emgu.CV.runtime.debian-arm64

🔗 Official EmguCV Installation Guide

Project Configuration Example:

<ItemGroup Condition="'$(RuntimeIdentifier)'=='win-x64'">
    <PackageReference Include="Emgu.CV.runtime.windows" Version="4.12.0.5764" />
</ItemGroup>
<ItemGroup Condition="'$(RuntimeIdentifier)'=='linux-x64'">
    <PackageReference Include="Emgu.CV.runtime.ubuntu-x64" Version="4.12.0.5764" />
</ItemGroup>

Note: macOS is currently not supported due to EmguCV runtime limitations in this context.

Usage

☁️ Cloud Module

Resolve shareable links to direct raw image streams.

using SlideGenerator.Framework.Cloud;

var directUrl = await CloudUrlResolver.ResolveLinkAsync("https://drive.google.com/file/d/...");

📊 Sheet Module

Read data from spreadsheets.

using SlideGenerator.Framework.Sheet.Models;

using var workbook = new Workbook("data.xlsx");
var sheet = workbook.Worksheets["Sheet1"];
var rowData = sheet.GetRow(1); // Returns Dictionary<string, object>

🖼️ Slide Module

The core generation logic.

using SlideGenerator.Framework.Slide.Models;
using SlideGenerator.Framework.Slide;

// 1. Load Template & Create Output
using var template = new TemplatePresentation("template.pptx");
using var working = template.SaveAs("output.pptx");

// 2. Clone a slide from template
var slidePart = working.CopySlide(template.MainSlideRelationshipId);

// 3. Replace Text
var replacements = new Dictionary<string, string>
{
    ["Name"] = "Alice",
    ["Title"] = "Engineer"
};
await TextReplacer.ReplaceAsync(slidePart, replacements);

// 4. Replace Image (by Shape ID)
var shapeId = 4U; // Discovered via template.GetAllPreviewImageShapes()
var shape = Presentation.GetShapeById(slidePart, shapeId);
using var imgStream = File.OpenRead("photo.png");

ImageReplacer.ReplaceImage(slidePart, shape!, imgStream);

// 5. Save
working.Save();

🧠 Image Module

Intelligent cropping based on Region of Interest (ROI).

using SlideGenerator.Framework.Image.Models;
using SlideGenerator.Framework.Image.Modules.Roi;

using var image = new Image("photo.png");
using var faceModel = new YuNetModel(); // Pre-trained face detector

var roiModule = new RoiModule(new RoiOptions { FaceDetectionModel = faceModel });
var selector = roiModule.GetRoiSelector(RoiType.Face);

// Crop image focusing on the face
await RoiModule.CropToRoiAsync(image, new Size(200, 200), selector, CropType.Fill);
```                                         |
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.1 88 1/17/2026
1.1.0 88 1/16/2026
1.0.0 180 12/23/2025