Free .NET Library for Manipulating Presentation Documents
Read, Write, Manipulate & Convert Presentation Files, Add Slides and Shapes to Existing PPT/PPTX Files via Open Source .NET API.
What is NetOffice?
NetOffice is an open source API, developed by Microsoft and distributed under Microsoft open source code of conduct to manipulate Presentation Documents. It supports multiple Office versions and provides an object model similar to Visual Basic for Applications (VBA). What makes NetOffice especially useful is its compatibility with older versions of Office, meaning developers can write code that works across different Office releases without needing to deal with version-specific APIs.
Diagrams are an integral part of PowerPoint presentations. Using NetOffice, developers can automate the creation of slides containing diagrams such as flowcharts, org charts, or other visual representations of data. Using the API, you can add text, header, footer, end notes, footnotes, styles, themes, and more. It allows you to generate high-performance presentation documents and extract data from them. The API support various .NET platforms including, .NET 3.5, .NET 4.0, .NET 4.6, and .NET Standard 1.3.
Getting Started with NetOffice
First of all, you require to have .NET Framework 4.5 or above. After that, please download the repository manually from GitHub or install it from NuGet.
Installation NetOffice from NuGet
Install-Package NetOfficeFw.Presentation
Add Slides in PowerPoint using Free C# API
NetOffice allows .NET programmers to add slides in Microsoft PowerPoint files programmatically. In order to add slides in PowerPoint file first you need to initialize an PowerPoint.Application and turn off message boxes. After your PowerPoint application is started you can add a new presentation in it using PowerApplication.Presentations.Add() method. Finally, You can add slides in your presentations using Presentation.Slides.Add() method
How to Create Presentations & Add Slides to It via C# API?
// start powerpoint
PowerPoint.Application powerApplication = new PowerPoint.Application();
// create a utils instance, no need for but helpful to keep the lines of code low
CommonUtils utils = new CommonUtils(powerApplication);
// add a new presentation with two new slides
PowerPoint.Presentation presentation = powerApplication.Presentations.Add(MsoTriState.msoTrue);
PowerPoint.Slide slide1 = presentation.Slides.Add(1, PpSlideLayout.ppLayoutBlank);
PowerPoint.Slide slide2 = presentation.Slides.Add(1, PpSlideLayout.ppLayoutBlank);
// add shapes
slide1.Shapes.AddShape(MsoAutoShapeType.msoShape4pointStar, 100, 100, 200, 200);
slide2.Shapes.AddShape(MsoAutoShapeType.msoShapeDoubleWave, 200, 200, 200, 200);
// change blend animation
slide1.SlideShowTransition.EntryEffect = PpEntryEffect.ppEffectCoverDown;
slide1.SlideShowTransition.Speed = PpTransitionSpeed.ppTransitionSpeedFast;
slide2.SlideShowTransition.EntryEffect = PpEntryEffect.ppEffectCoverLeftDown;
slide2.SlideShowTransition.Speed = PpTransitionSpeed.ppTransitionSpeedFast;
// save the document
string documentFile = utils.File.Combine(HostApplication.RootDirectory, "Example04", DocumentFormat.Normal);
presentation.SaveAs(documentFile);
// close power point and dispose reference
powerApplication.Quit();
powerApplication.Dispose();
// show end dialog
HostApplication.ShowFinishDialog(null, documentFile);
Add Label, Line & Star in Presentations using Free C# API
NetOffice allows .NET programmers to add label, line & stars in Microsoft Presentation File programmatically. In order to add content in presentation file first you need to initialize an PowerPoint.Application and turn off message boxes and add new presentation using PowerApplication.Presentations.Add() method and add a new slide using presentation.Slides.Add() method. You can insert add label, line and star in your slide by using Slide.Shapes.AddLabel(), Slide.Shapes.AddLine(), and Slide.Shapes.AddShape(() method respectively.
How to Add Label, Line and Star in Presentations via C# API?
// add a new presentation with one new slide
PowerPoint.Presentation presentation = powerApplication.Presentations.Add(MsoTriState.msoTrue);
PowerPoint.Slide slide = presentation.Slides.Add(1, PpSlideLayout.ppLayoutBlank);
// add a label
PowerPoint.Shape label = slide.Shapes.AddLabel(MsoTextOrientation.msoTextOrientationHorizontal, 10, 10, 600, 20);
label.TextFrame.TextRange.Text = "This slide and created Shapes are created by NetOffice example.";
// add a line
slide.Shapes.AddLine(10, 80, 700, 80);
// add a wordart
slide.Shapes.AddTextEffect(MsoPresetTextEffect.msoTextEffect9, "This a WordArt", "Arial", 20,
MsoTriState.msoTrue, MsoTriState.msoFalse, 10, 150);
// add a star
slide.Shapes.AddShape(MsoAutoShapeType.msoShape24pointStar, 200, 200, 250, 250);
// save the document
string documentFile = utils.File.Combine(HostApplication.RootDirectory, "Example02", DocumentFormat.Normal);
presentation.SaveAs(documentFile);