The sample code below splits the source presentation Source.pptx into its individual slides. To achieve it we make use of another intermediate presentation Empty.pptx with single blank slide.
All of the source and output presentations have been attached for your reference
For a short note, first clone the master slide of the source slide into destination presentation and then clone source slide itself.
C#
string pathSourcePres = @"C:\Test\Source.pptx";
string pathEmptyPres = @"C:\Test\Empty.pptx";
//Source presentation
PresentationEx srcPres = new PresentationEx(pathSourcePres);
//Iterate all the slides in source presentation
//and clone them into destination presentation
for (int i = 0; i < srcPres.Slides.Count; i++)
{
//Access source slide
SlideEx srcSld = srcPres.Slides[i];
//Access source slide master
MasterSlideEx srcSldMaster = srcSld.LayoutSlide.MasterSlide;
//Create a destination presentation where source slide
//will be cloned
//Note: destination presentation has already one blank slide
//we will remove it at the end
PresentationEx dstPres = new PresentationEx(pathEmptyPres);
//First clone source slide master into destination presentation
int index = dstPres.Masters.AddClone(srcSldMaster);
//Then access the destination slide master
MasterSlideEx dstSldMaster = dstPres.Masters[index];
//Now, clone source slide with destination slide master
dstPres.Slides.AddClone(srcSld, dstSldMaster);
//Remove the unwanted blank slide in destination presentation
dstPres.Slides.RemoveAt(0);
//Write the destination presentation onto disk
int slideNum = i + 1;
dstPres.Write("c:\\Test\\slide" + slideNum + ".pptx");
}