using (PresentationDocument newDocument = PresentationDocument.Open(OutputFileText.Text,true))
{
PresentationDocument templateDocument = PresentationDocument.Open(FileNameText.Text, false);
uniqueId = GetMaxIdFromChild(newDocument.PresentationPart.Presentation.SlideMasterIdList);
uint maxId = GetMaxIdFromChild(newDocument.PresentationPart.Presentation.SlideIdList);
SlidePart oldPart = GetSlidePartByTagName(templateDocument, SlideToCopyText.Text);
SlidePart newPart = newDocument.PresentationPart.AddPart<SlidePart>(oldPart, "sourceId1");
SlideMasterPart newMasterPart = newDocument.PresentationPart.AddPart(newPart.SlideLayoutPart.SlideMasterPart);
SlideIdList idList = newDocument.PresentationPart.Presentation.SlideIdList;
// create new slide ID
maxId++;
SlideId newId = new SlideId();
newId.Id = maxId;
newId.RelationshipId = "sourceId1";
idList.Append(newId);
// Create new master slide ID
uniqueId++;
SlideMasterId newMasterId = new SlideMasterId();
newMasterId.Id = uniqueId;
newMasterId.RelationshipId = newDocument.PresentationPart.GetIdOfPart(newMasterPart);
newDocument.PresentationPart.Presentation.SlideMasterIdList.Append(newMasterId);
// change slide layout ID
FixSlideLayoutIds(newDocument.PresentationPart);
//newPart.Slide.Save();
newDocument.PresentationPart.Presentation.Save();
}