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.
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
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");
}