Spire.Presentation for .NET
.NET PowerPoint API - Processing PPT, PPS, PPTX, PPSX in C#, VB.NET, ASP.NET
- Overview
- Examples
- Guideline
- Support
- What's New
- Live Demo

Spire.Presentation for .NET is a professional PowerPoint® compatible API that enables developers to create, read, write, modify, convert and Print PowerPoint documents on any .NET platform ( Target .NET Framework, .NET Core, .NET Standard, .NET 5.0, .NET 6.0, Xamarin & Mono Android ). As an independent PowerPoint .NET API, Spire.Presentation for .NET doesn't need Microsoft PowerPoint to be installed on machines.
Spire.Presentation for .NET supports PPT, PPS, PPTX and PPSX presentation formats. It provides functions such as managing text, image, shapes, tables, animations, audio and video on slides. It also supports exporting presentation slides to EMF, JPG, TIFF, PDF, XPS, SVG, HTML format etc.
-
Convert
-
Master
-
Watermark
-
Extract
-
eSign
-
Chart
-
SmartArt
-
Graphic
-
Note
-
Animation
Convert PowerPoint to PDF
Converting PowerPoint to PDF helps you maintain the layout and formatting of your presentation when viewed on different systems or devices.

Create Slide Masters
A slide master controls the design of all the slides based on it. Using a slide master makes it easier to create presentations that look consistent and visually appealing.

Add a Watermark
Watermarks are used to declare confidentiality, copyright, source, or other attributes of the document, or as a decoration to make the document more attractive. Both text watermarks and image watermarks can be added to presentations.

Extract Text and Images
If you only need the text and images of a PowerPoint document regardless of their formatting and layout, you can directly extract them from the document.

Digitally Sign PowerPoint Documents
A digital signature provides assurances about the validity and authenticity of your presentation. Once a PowerPoint document is digitally signed, any changes to the document will invalidate the signature.

Insert Charts
Charts in PowerPoint can help illustrate data, show trends or changes in data over time, and make the whole document more professional and attractive.

Insert a SmartArt
SmartArt is a way to combine text, shapes and colors into an image or illustration. SmartArt graphics let you easily create a visual representation of your information.

Insert Images and Shapes
Adding pictures and shapes can make your presentations more interesting and engaging. And you can customize your images by cropping, reordering, changing colors or adding other formatting and customize shape according to your own color palette, preferences.

Add Speaker Notes
Adding speaker notes to a PowerPoint presentation provides reference material for the speaker when they’re presenting a slideshow, allowing them to stay on track without forgetting the key points to deliver a flawless presentation.

Set Animations on Shapes in PowerPoint
Animation is a great way to emphasize important points, to control the flow of information, and to increase viewer interest in your presentation. You can animate almost every objects in PowerPoint slide to give them visual effects.

.NET
Standalone .NET API
100% independent .NET PowerPoint API which
doesn't require Microsoft PowerPoint to be installed on system.
VERSION
- PPT - PowerPoint Presentation 97-2003
- PPS - PowerPoint SlideShow 97-2003
- PPTX - PowerPoint Presentation 2007/2010/2013/2016/2019
- PPSX - PowerPoint SlideShow 2007, 2010
OPERATION
Powerful Toolset, Multichannel Support
-
Work with PowerPoint Charts
-
Print PowerPoint Presentations
-
Work with SmartArt
-
Images and Shapes
-
Audio and Video
-
Protect Presentation Slides
-
Text and Image Watermark
-
Merge Split PowerPoint Document
-
Comments and Notes
-
Manage PowerPoint Tables
-
Set Animations on Shapes
-
Manage Hyperlink
-
Extract Text and Image
-
Replace Text
CONVERSION
Conversion File Documents with High Quality
-
PDF
-
HTML
-
XPS
-
SVG
-
Image


PowerPoint Document

-
PNG
-
BMP
-
JPEG
-
EMF
-
TIFF
MAIN FUNCTION
Only Spire.Presentation, No Microsoft PowerPoint Automation
As an independent PowerPoint .NET API, Spire.Presentation for .NET doesn't need Microsoft PowerPoint installed on the machine. And it is compatible with other .NET applications.Support File Formats
Spire.Presentation for .NET supports Microsoft PowerPoint 97-2003 and Microsoft PowerPoint 2007, 2010.- PPT - PowerPoint Presentation 97-2003
- PPS - PowerPoint SlideShow 97-2003
- PPTX - PowerPoint Presentation 2007, 2010, 2013, 2016 and 2019
- PPSX - PowerPoint SlideShow 2007, 2010
Platforms Supported
By using Spire.Presentation, developers can build any type of a 32-bit or 64-bit .NET application including ASP.NET, Web Services, WinForms, Xamarin and Mono Android, to create and handle PowerPoint documents.Pro Edition $799
Spire.Presentation for .NET supports PPT, PPS, PPTX and PPSX presentation formats.
Free Edition $0
Free version is limited to 10 presentation slides. This limitation is enforced during reading or writing PPT, PPTX. When converting PowerPoint files to PDF, you can only get the first 3 pages of PDF file.
GET STARTED
Free Trials for All Progress Solutions
Request free customized demo just for you. |
Beginners Guide is the first step towards learning the basic information of Spire.Presentation for .NET |
Program Guide lists the detailed features of our Spire.Presentation for .NET and you can search for the information you want. |
The Videos give an operation guide by video. You can check the produce step by step. |
|||||||||||
We guarantee one business day Forum questions Reply. |
We guarantee one business day E-mail response. |
Free Customized service for OEM Users. |
|||||||||||
Skype name: iceblue.support |
Apply for a Free Trial License File. |
||||||||||||
- It relates to our components stored on E-iceblue online store.
- It costs less than 2 hours for us to complete it. If it costs more than 2 hours, please contact our sales@e-iceblue.com
This is the list of changelogs of Spire.Presentation New release and hotfix. You can get the detail information of each version's new features and bug solutions.
Hot Fix Version: 8.10.2
Category | ID | Description |
New feature | SPIREPPT-2324 | Supported the functionality to obtain the text position information within a shape.
Presentation ppt = new Presentation(); ppt.LoadFromFile(inputFile); StringBuilder sb = new StringBuilder(); ISlide slide = ppt.Slides[0]; for (int i = 0; i < slide.Shapes.Count; i++) { IShape shape = slide.Shapes[i]; if (shape is IAutoShape) { IAutoShape autoshape = slide.Shapes[i] as IAutoShape; string text = autoshape.TextFrame.Text; //obtain the text position information PointF point = autoshape.TextFrame.GetTextLocation(); sb.AppendLine("Shape " + i + ":" + text + "\r " + "location:" + point.ToString()); } } File.AppendAllText(outputFile, sb.ToString()); ppt.Dispose(); |
New feature | SPIREPPT-2350 | Supported the functionality to get the Ascent and Descent properties of text within a Shape.
Presentation ppt = new Presentation(); ppt.LoadFromFile(inputFile); ISlide slide = ppt.Slides[0]; IAutoShape autoshape = slide.Shapes[0] as IAutoShape; IList |
New feature | SPIREPPT-2365 | Supported the functionality to convert shapes to SVG format.
Presentation ppt = new Presentation(); ppt.LoadFromFile("FreeForm.pptx"); ISlide slide = ppt.Slides[0]; int num = 0; foreach (IShape shape in slide.Shapes) { byte[] svgByte = shape.SaveAsSvg(); FileStream fs = new FileStream("shape_" + num + ".svg",FileMode.Create); fs.Write(svgByte, 0, svgByte.Length); fs.Close(); num++; } |
Bug | SPIREPPT-2350 | Fixed the issue of SVG files appearing blank when opening them in a browser after converting PPT to SVG. |
Hot Fix Version: 8.9.4
Category | ID | Description |
New feature | SPIREPPT-2351 | Supports setting the time for automatic slide switching.
Presentation ppt = new Presentation(); ppt.LoadFromFile("input.pptx"); ppt.Slides[0].SlideShowTransition.AdvanceAfterTime = 1000; ppt.Slides[1].SlideShowTransition.SelectedAdvanceAfterTime = false; ppt.SaveToFile("output.pptx", FileFormat.Pptx2013); ppt.Dispose(); |
New feature | SPIREPPT-2353 | Optimizes the names of all options under Radial Gradient Style type, marking the original options as deprecated and adding the same options as in MS PowerPoint tools.
Previous options: FromCorner1 FromCorner2 FromCorner3 FromCorner4 New options: FromTopLeftCorner FromBottomLeftCorner FromTopRightCorner FromBottomRightCorner |
New feature | SPIREPPT-2354 | Supports setting and reading the transparency and brightness of the gradient stop styles.
Presentation ppt = new Presentation(); ppt.LoadFromFile("input.pptx"); StringBuilder stringBuilder = new StringBuilder(); IAutoShape shape = (ppt.Slides[0].Shapes[0] as GroupShape).Shapes[2] as IAutoShape; GradientStopCollection stops = shape.Fill.Gradient.GradientStops; for (int i = 0; i < stops.Count; i++) { float transparency = stops[i].Color.Transparency; float brightness = stops[i].Color.Brightness; stringBuilder.AppendLine("stops" + i + "transparency: " + transparency + " brightness: " + brightness); } File.WriteAllText("output.txt", stringBuilder.ToString()); stops[0].Color.Transparency = 0.5f; stops[0].Color.Brightness = -0.32f; ppt.SaveToFile("output.pptx", FileFormat.Auto); ppt.Dispose(); |
Bug | SPIREPPT-2322 | Fixes the issue that the collection of corner coordinates of polygons obtained was incomplete. |
Bug | SPIREPPT-2323 | Fixes the issue that the text direction changed after saving slides to images. |
Bug | SPIREPPT-2334 | Fix the issue that it failed to retrieve connection point coordinates for line connector shapes. |
Hot Fix Version: 8.8.4
Category | ID | Description |
New feature | SPIREPPT-2311 | Supports highlighting replaced text.
Presentation ppt = new Presentation(); ppt.LoadFromFile("input.pptx"); DefaultTextRangeProperties format = new DefaultTextRangeProperties(); format.IsBold = TriState.True; format.Fill.FillType = Spire.Presentation.Drawing.FillFormatType.Solid; format.Fill.SolidColor.Color = Color.Red; format.FontHeight = 25; ppt.ReplaceAndFormatText("Yuma", "AAAA", format); ppt.SaveToFile("output.pptx",FileFormat.Pptx2016); |
Bug | SPIREPPT-2286 | Fixes the issue that the think-cell objects were lost when splitting a PowerPoint document containing think-cell objects. |
Bug | SPIREPPT-2292 | Fixes the issue that copying a PowerPoint slide containing modern annotation content failed. |
Bug | SPIREPPT-2315 | Fixes the issue that the program threw System.IndexOutOfRangeException when getting points in the teardrop shape. |
Bug | SPIREPPT-2317 | Fixes the issue that the color did not take effect when converting to PDF after changing the hyperlink color. |
Hot Fix Version: 8.7.2
Category | ID | Description |
New feature | - | Adds a method for resetting the default font list for document conversion.
presentation.setDefaultFontName("华文行楷"); |
New feature | - | Adds a method for setting the preferred font to be used when converting PDF or image files that require fonts not installed in the system.
presentation.resetDefaultFontName(); |
Bug | SPIREPPT-2300 | Fixes the issue that the charts were lost when converting PowerPoint documents to images. |
Bug | SPIREPPT-2302 | Fixes the issue that the resulting file failed to open after manipulating chart data. |
Bug | SPIREPPT-2303 | Fixes the issue that the program to throw "Spire.Presentation.DocumentUnkownFormatException" exception when loading PowerPoint documents. |
Bug | SPIREPPT-2304 | Fixes the issue that modifying the text color of hyperlinks did not take effect. |
Hot Fix Version: 8.7.0
Category | ID | Description |
New feature | SPIREPPT-2244 | Supports PPTX 2016 and PPTX 2019 file formats.
Spire.Presentation.FileFormat.Pptx2016 Spire.Presentation.FileFormat.Pptx2019 |
New feature | SPIREPPT-2266 | Supports setting the "Distance from axis" in the horizontal coordinate of the chart.
Presentation ppt = new Presentation(); IChart chart = ppt.Slides[0].Shapes.AppendChart(ChartType.ColumnClustered, new RectangleF(50, 50, 400, 400)); //Gets the PrimaryCategory axis IChartAxis chartAxis = chart.PrimaryCategoryAxis; //Set "Distance from axis" chartAxis.LabelsDistance = 200; //Save to file ppt.SaveToFile(outputFile, FileFormat.Pptx2013); |
Bug | SPIREPPT-2279 | Fixed the issue that the generated files failed to open after splitting PPT files. |
Bug | SPIREPPT-2280 | Fixed the issue that there was an incorrect null pointer when loading PPT files. |
Bug | SPIREPPT-2285 | Fixed the issue that there was an error when determining whether a bar graph was switching columns. |
Hot Fix Version: 8.6.0
Category | ID | Description |
New feature | SPIREPPT-2232 | Supports setting the column count for the TextFrame.
Presentation ppt = new Presentation(); ppt.LoadFromFile(inputFile); IAutoShape shape1 = (IAutoShape)ppt.Slides[0].Shapes[0]; shape1.TextFrame.ColumnCount = 2; IAutoShape shape2 = (IAutoShape)ppt.Slides[1].Shapes[0]; shape2.TextFrame.ColumnCount = 3; ppt.SaveToFile(outputFile, FileFormat.Pptx2013); ppt.Dispose(); |
Bug | SPIREPPT-2205 | Fixes the issue that it prompted an error when editing the chart data of the saved PowerPoint file. |
Bug | SPIREPPT-2221 | Fixes the issue that the switching Row/Column encountered an error when the chart data have some null values. |
Bug | SPIREPPT-2215 SPIREPPT-2225 |
Fixes the issue that the application threw "Merged cells found." when splitting table merged cell. |
Bug | SPIREPPT-2212 SPIREPPT-2243 |
Fixes the issue that the chart data was updated incorrectly. |
Bug | SPIREPPT-2245 SPIREPPT-2274 |
Fixes the issue that the result was blurry after saving the GroupShape to image. |
Hot Fix Version: 8.4.1
Category | ID | Description |
Bug | SPIREPPT-2224 | Fixes the issue that the program entered an infinite loop and caused memory exhaustion when converting PowerPoint to images. |
Hot Fix Version: 8.3.2
Category | ID | Description |
Bug | SPIREPPT-2205 | Fixes the issue that an error dialog box popped up when editing PowerPoint chart data. |
Hot Fix Version: 8.2.0
Category | ID | Description |
Bug | SPIREPPT-2153 | Fixes the issue that the memory failed to release when the PowerPoint to image conversion program ended. |
Hot Fix Version: 8.1.1
Category | ID | Description |
New feature | SPIREPPT-2133 | Supports the function of replying to comments.
Presentation ppt = new Presentation(); ICommentAuthor author = ppt.CommentAuthors.AddAuthor("E-iceblue", "comment"); ppt.Slides[0].AddComment(author, "Add comment", new System.Drawing.Point(18, 25), DateTime.Now); Comment comment = ppt.Slides[0].Comments[0]; if (!comment.IsReply) { comment.Reply(author, "Add Reply1", DateTime.Now); comment.Reply(author, "Add Reply2", DateTime.Now); } ppt.Slides[0].DeleteComment(author, "Add Reply1"); ppt.SaveToFile(outputFile, FileFormat.Pptx2013); |
Bug | SPIREPPT-2124 | Fixes the issue that the generated chart data of Excel was changed from null to 0. |
Bug | SPIREPPT-2124 | Fixes the issue that the shape's direction was changed after canceling the shape combination. |
Request free customized demo just for you. |
Tab 1
Upload

Convert to
Tab 2
Upload

Convert to
Tab 3
Add text
Text: | |
Font: | |
Font Size: | |
Color: | |
downloads
|
Add image
Image: |
Click here to browse files
|
![]() |
|
downloads
|
Tab 4
Set text watermark
Text: | |
Font: | |
Font Size: | |
Color: | |
Rotate: | |
downloads
|
Set image watermark
Image: |
Click here to browse files
|
![]() |
|
downloads
|
Tab 5
Data
salesPers | saleAmt | comPct | comAmt |
Joe | 250 | 150 | 99 |
Robert | 270 | 150 | 99 |
Michelle | 310 | 120 | 49 |
Erich | 330 | 120 | 49 |
Dafna | 360 | 150 | 141 |
Rob | 380 | 150 | 135 |
Option
If you don't find the function you want, please fill in a form to request a free demo from us. Make sure the demo you want meets the following requirements:
- It is a small project that implements a particular scenario.
- It relates to our libraries stored on E-iceblue online store.
- It costs less than 2 hours for us to complete it.
- It is not a bug report.
- It is not a feature request.