Supprimer une diapositive

OpenXML SDK


 string FilePath = @"..\..\..\..\Sample Files\";

string FileName = FilePath + "Supprimer une diapositive.pptx";

DeleteSlide(FileName, 1);

// Obtenez l'objet de présentation et passez-le à la méthode DeleteSlide suivante.

public static void DeleteSlide(string presentationFile, int slideIndex)

{

    // Ouvrez le document source en lecture/écriture.

    using (PresentationDocument presentationDocument = PresentationDocument.Open(presentationFile, true))

    {

        // Passez le document source et l'index de la diapositive à supprimer à la prochaine méthode DeleteSlide.

        DeleteSlide(presentationDocument, slideIndex);

    }

}

// Supprime la diapositive spécifiée de la présentation.

public static void DeleteSlide(PresentationDocument presentationDocument, int slideIndex)

{

    if (presentationDocument == null)

    {

        throw new ArgumentNullException("presentationDocument");

    }

    // Utilisez l'exemple CountSlides pour obtenir le nombre de diapositives dans la présentation.

    int slidesCount = CountSlides(presentationDocument);

    if (slideIndex < 0 || slideIndex >= slidesCount)

    {

        throw new ArgumentOutOfRangeException("slideIndex");

    }

    // Obtenez la partie de présentation du document de présentation. 

    PresentationPart presentationPart = presentationDocument.PresentationPart;

    // Obtenez la présentation à partir de la partie de présentation.

    Presentation presentation = presentationPart.Presentation;

    // Obtenez la liste des ID de diapositive dans la présentation.

    SlideIdList slideIdList = presentation.SlideIdList;

    // Obtenez l'ID de diapositive de la diapositive spécifiée

    SlideId slideId = slideIdList.ChildElements[slideIndex] as SlideId;

    // Obtenez l'ID de relation de la diapositive.

    string slideRelId = slideId.RelationshipId;

    // Supprimez la diapositive de la liste des diapositives.

    slideIdList.RemoveChild(slideId);

    //

    // Supprimez les références à la diapositive de tous les diaporamas personnalisés.

    if (presentation.CustomShowList != null)

    {

        // Itérez à travers la liste des diaporamas personnalisés.

        foreach (var customShow in presentation.CustomShowList.Elements<CustomShow>())

        {

            if (customShow.SlideList != null)

            {

                // Déclarez une liste chaînée d'entrées de liste de diapositives.

                LinkedList<SlideListEntry> slideListEntries = new LinkedList<SlideListEntry>();

                foreach (SlideListEntry slideListEntry in customShow.SlideList.Elements())

                {

                    // Trouvez la référence de diapositive à supprimer du diaporama personnalisé.

                    if (slideListEntry.Id != null && slideListEntry.Id == slideRelId)

                    {

                        slideListEntries.AddLast(slideListEntry);

                    }

                }

                // Supprimez toutes les références à la diapositive du diaporama personnalisé.

                foreach (SlideListEntry slideListEntry in slideListEntries)

                {

                    customShow.SlideList.RemoveChild(slideListEntry);

                }

            }

        }

    }

    // Enregistrez la présentation modifiée.

    presentation.Save();

    // Obtenez la partie de diapositive pour la diapositive spécifiée.

    SlidePart slidePart = presentationPart.GetPartById(slideRelId) as SlidePart;

    // Supprimez la partie de diapositive.

    presentationPart.DeletePart(slidePart);

}

// Obtenez l'objet de présentation et passez-le à la méthode CountSlides suivante.

public static int CountSlides(string presentationFile)

{

    // Ouvrez la présentation en lecture seule.

    using (PresentationDocument presentationDocument = PresentationDocument.Open(presentationFile, false))

    {

        // Passez la présentation à la prochaine méthode CountSlide

        // et renvoyez le compte des diapositives.

        return CountSlides(presentationDocument);

    }

}

// Comptez les diapositives dans la présentation.

public static int CountSlides(PresentationDocument presentationDocument)

{

    // Vérifiez s'il s'agit d'un objet document nul.

    if (presentationDocument == null)

    {

        throw new ArgumentNullException("presentationDocument");

    }

    int slidesCount = 0;

    // Obtenez la partie présentation du document.

    PresentationPart presentationPart = presentationDocument.PresentationPart;

    // Obtenez le nombre de diapositives à partir des SlideParts.

    if (presentationPart != null)

    {

        slidesCount = presentationPart.SlideParts.Count();

    }

    // Retournez le nombre de diapositives à la méthode précédente.

    return slidesCount;

}   

Aspose.Slides


 string FilePath = @"..\..\..\..\Sample Files\";

string FileName = FilePath + "Supprimer une diapositive.pptx";

DeleteSlide(FileName, 1);

public static void DeleteSlide(string presentationFile, int slideIndex)

{

    //Instancier un objet PresentationEx qui représente un fichier PPTX

    using (Presentation pres = new Presentation(presentationFile))

    {

        //Accéder à une diapositive en utilisant son index dans la collection de diapositives

        ISlide slide = pres.Slides[slideIndex];


        //Supprimer une diapositive en utilisant sa référence

        pres.Slides.Remove(slide);


        //Écrire la présentation en tant que fichier PPTX

        pres.Save(presentationFile,Aspose.Slides.Export.SaveFormat.Pptx);

    }

}

Télécharger le code source