ShapeCrawler is a .NET library for manipulating PowerPoint presentations. It provides a simplified object model on top of the Open XML SDK, allowing users to process presentations without having Microsoft Office installed.
dotnet add package ShapeCrawler
// open existing presentation
var pres = new Presentation("some.pptx");
var shapes = pres.Slide(1).Shapes;
// get number of shapes on slide
var shapesCount = shapes.Count;
// get text
var shape = shapes.GetByName("TextBox 1");
var text = shape.TextBox!.Text;
// create a new presentation
var pres = new Presentation();
var shapes = pres.Slide(1).Shapes;
// add new shape
shapes.AddShape(x: 50, y: 60, width: 100, height: 70);
var addedShape = shapes.Last();
addedShape.TextBox!.Text = "Hello World!";
pres.SaveAs("my_pres.pptx");
var pres = new Presentation("picture.pptx");
// get picture shape
var picture = pres.Slide(1).Picture("Picture 1");
// change image
var image = System.IO.File.OpenRead("new-image.png");
picture.Image!.Update(image);
// get MIME type of image, eg. "image/png"
var mimeType = picture.Image!.Mime;
pres.Save();
You can find more usage samples by visiting the Wiki page or Unit Tests folder.
To access prerelease builds from master
branch, add https://www.myget.org/F/shape/api/v3/index.json
as a NuGet package source.
If you have a question:
- Join our Discussions Forum and open a discussion;
- You can always email the author at theadamo86@gmail.com
Give a starβ if you find this useful, please give it a star to show your support.
If you encounter an issue, report the bug on the issue page.
To be able to reproduce a bug, it's often necessary to have the original presentation file attached to the issue description. If this file contains confidential data and cannot be shared publicly, you can securely send it to theadamo86@gmail.com. Of course, if your security policy allow this. We assure you that only the maintainer will access this file, and it will not be shared publicly.
Pull Requests are welcome! Please read the Contribution Guide for more details.
πAdded support macOS ARM D823
πFixed updating font #828