How to create a PowerPoint file in Xamarin.Android
Syncfusion® Essential® PowerPoint is a .NET PowerPoint library used to create, read, and edit PowerPoint documents. Using this library, you can start creating a PowerPoint document in Xamarin.Android.
Steps to create PowerPoint file programmatically:
- Create a new C# Xamarin Android application project.

- Select a project template and minimum android version for the application.

- Install Syncfusion.Xamarin.Presentation NuGet package as a reference to the .NET Standard project in your Xamarin applications from NuGet.org.

- In Main.axml add the new button and define the click event to generate the Excel file.
i)In Main.axml page add the following code to add the button
<Button android:id="@+id/MyButton" android:layout_width="fill_parent" android:layout_height="wrap_content" />
ii)In MainActivity.cs file add the following code to define the click event to generate Excel file.
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.activity_main);
Button button = FindViewById<Button>(Resource.Id.MyButton);
button.Text = "Create PowerPoint";
button.Click += OnButtonClicked;
}
- Include the following namespace in the MainActivity.cs file.
using Syncfusion.Presentation;
- In the click event method (OnButtonClicked) add the following code to create a PowerPoint file and save it in a stream.
void OnButtonClicked(object sender, EventArgs args)
{
using (IPresentation pptxDoc = Presentation.Create())
{
//Add slide to the PowerPoint
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
//Add textbox to the slide
IShape textboxShape = slide.AddTextBox(0, 0, 500, 500);
//Add paragraph to the textbody of textbox
IParagraph paragraph = textboxShape.TextBody.AddParagraph();
//Add a TextPart to the paragraph
ITextPart textPart = paragraph.AddTextPart();
//Add text to the TextPart
textPart.Text = "AdventureWorks Cycles, the fictitious company on which the AdventureWorks sample databases are based, is a large, multinational manufacturing company.";
//Create an instance for memory stream
MemoryStream memoryStream = new MemoryStream();
//Save the presentation to stream
pptxDoc.Save(memoryStream);
//Create an instance for SaveAndroid
SaveAndroid saveAndroid = new SaveAndroid();
//Save the stream as presentation file
await saveAndroid.SaveAndView("output.pptx", "application/powerpoint", memoryStream, this);
}
}
- Add the SaveAndroid class to the project where the stream will be saved to a physical file and the file can be opened for viewing.
The code for SaveAndroid class has been given below.
class SaveAndroid
{
//Method to save document as a file in Android and view the saved document
public async Task SaveAndView(string fileName, String contentType, MemoryStream stream, AppCompatActivity activity)
{
string root = null;
//Get the root path in android device.
if (Android.OS.Environment.IsExternalStorageEmulated)
{
root = Android.OS.Environment.ExternalStorageDirectory.ToString();
}
else
root = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
//Create directory and file
Java.IO.File myDir = new Java.IO.File(root + "/Syncfusion");
myDir.Mkdir();
Java.IO.File file = new Java.IO.File(myDir, fileName);
//Remove if the file exists
if (file.Exists()) file.Delete();
//Write the stream into the file
FileOutputStream outs = new FileOutputStream(file);
outs.Write(stream.ToArray());
outs.Flush();
outs.Close();
//Invoke the created file for viewing
if (file.Exists())
{
Android.Net.Uri path = Android.Net.Uri.FromFile(file);
string extension = Android.Webkit.MimeTypeMap.GetFileExtensionFromUrl(Android.Net.Uri.FromFile(file).ToString());
string mimeType = Android.Webkit.MimeTypeMap.Singleton.GetMimeTypeFromExtension(extension);
Intent intent = new Intent(Intent.ActionView);
intent.AddFlags(ActivityFlags.NewTask);
intent.SetDataAndType(path, mimeType);
activity.StartActivity(Intent.CreateChooser(intent, "Choose App"));
}
}
}
- Compile and execute the application. Now this application creates a simple PowerPoint document.
For the PowerPoint document to be read and written in the android device, the storage permission must be given for the deployed application. To read/write with the external storage location enable the required permissions in Android Manifest.

A complete working example to create Excel file in Xamarin.Andriod can be downloaded from Create-PowerPoint-file.zip.
Take a moment to peruse the documentation, where you can find basic slide creation in PowerPoint options along with features like Paragraphs, adding Shapes and Charts , organizing and analyzing data through Tables and most importantly PDF and Image conversions etc. with code examples.
Refer here to explore the rich set of Syncfusion® Essential® PowerPoint features.
Starting with v16.2.0.x, if you reference Syncfusion® assemblies from trial setup or from the NuGet feed, include a license key in your projects. Refer to link to learn about generating and registering Syncfusion® license key in your application to use the components without trail message.