Verwijder een dia
Contents
[
Hide
]
OpenXML SDK
string FilePath = @"..\..\..\..\Sample Files\";
string FileName = FilePath + "Delete a slide.pptx";
DeleteSlide(FileName, 1);
// Haal het presentatie‑object op en geef het door aan de volgende DeleteSlide‑methode.
public static void DeleteSlide(string presentationFile, int slideIndex)
{
// Open het bron‑document als lezen/schrijven.
using (PresentationDocument presentationDocument = PresentationDocument.Open(presentationFile, true))
{
// Geef het bron‑document en de index van de te verwijderen dia door aan de volgende DeleteSlide‑methode.
DeleteSlide(presentationDocument, slideIndex);
}
}
// Verwijder de opgegeven dia uit de presentatie.
public static void DeleteSlide(PresentationDocument presentationDocument, int slideIndex)
{
if (presentationDocument == null)
{
throw new ArgumentNullException("presentationDocument");
}
// Gebruik het CountSlides‑voorbeeld om het aantal dia’s in de presentatie te krijgen.
int slidesCount = CountSlides(presentationDocument);
if (slideIndex < 0 || slideIndex >= slidesCount)
{
throw new ArgumentOutOfRangeException("slideIndex");
}
// Haal het presentatie‑deel op uit het presentatiedocument.
PresentationPart presentationPart = presentationDocument.PresentationPart;
// Haal de presentatie op uit het presentatie‑deel.
Presentation presentation = presentationPart.Presentation;
// Haal de lijst met dia‑ID’s op in de presentatie.
SlideIdList slideIdList = presentation.SlideIdList;
// Haal de dia‑ID op van de opgegeven dia
SlideId slideId = slideIdList.ChildElements[slideIndex] as SlideId;
// Haal de relatie‑ID van de dia op.
string slideRelId = slideId.RelationshipId;
// Verwijder de dia uit de dia‑lijst.
slideIdList.RemoveChild(slideId);
//
// Verwijder verwijzingen naar de dia uit alle aangepaste shows.
if (presentation.CustomShowList != null)
{
// Loop door de lijst met aangepaste shows.
foreach (var customShow in presentation.CustomShowList.Elements<CustomShow>())
{
if (customShow.SlideList != null)
{
// Declareer een gekoppelde lijst van dia‑lijst‑items.
LinkedList<SlideListEntry> slideListEntries = new LinkedList<SlideListEntry>();
foreach (SlideListEntry slideListEntry in customShow.SlideList.Elements())
{
// Zoek de diaverwijzing om te verwijderen uit de aangepaste show.
if (slideListEntry.Id != null && slideListEntry.Id == slideRelId)
{
slideListEntries.AddLast(slideListEntry);
}
}
// Verwijder alle verwijzingen naar de dia uit de aangepaste show.
foreach (SlideListEntry slideListEntry in slideListEntries)
{
customShow.SlideList.RemoveChild(slideListEntry);
}
}
}
}
// Sla de aangepaste presentatie op.
presentation.Save();
// Haal het dia‑deel op voor de opgegeven dia.
SlidePart slidePart = presentationPart.GetPartById(slideRelId) as SlidePart;
// Verwijder het dia‑deel.
presentationPart.DeletePart(slidePart);
}
// Haal het presentatie‑object op en geef het door aan de volgende CountSlides‑methode.
public static int CountSlides(string presentationFile)
{
// Open de presentatie als alleen‑lezen.
using (PresentationDocument presentationDocument = PresentationDocument.Open(presentationFile, false))
{
// Geef de presentatie door aan de volgende CountSlide‑methode
// en retourneer het aantal dia’s.
return CountSlides(presentationDocument);
}
}
// Tel de dia’s in de presentatie.
public static int CountSlides(PresentationDocument presentationDocument)
{
// Controleer op een null‑documentobject.
if (presentationDocument == null)
{
throw new ArgumentNullException("presentationDocument");
}
int slidesCount = 0;
// Haal het presentatie‑deel van het document op.
PresentationPart presentationPart = presentationDocument.PresentationPart;
// Haal het aantal dia’s op uit de SlideParts.
if (presentationPart != null)
{
slidesCount = presentationPart.SlideParts.Count();
}
// Retourneer het aantal dia’s aan de vorige methode.
return slidesCount;
}
Aspose.Slides
string FilePath = @"..\..\..\..\Sample Files\";
string FileName = FilePath + "Delete a slide.pptx";
DeleteSlide(FileName, 1);
public static void DeleteSlide(string presentationFile, int slideIndex)
{
//Instantieer een PresentationEx‑object dat een PPTX‑bestand vertegenwoordigt
using (Presentation pres = new Presentation(presentationFile))
{
//Toegang tot een dia via de index in de dia‑collectie
ISlide slide = pres.Slides[slideIndex];
//Verwijderen van een dia via zijn referentie
pres.Slides.Remove(slide);
//Opslaan van de presentatie als een PPTX‑bestand
pres.Save(presentationFile,Aspose.Slides.Export.SaveFormat.Pptx);
}
}