Déplacer une diapositive vers une nouvelle position

OpenXML SDK


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

string FileName = FilePath + "Déplacer une diapositive vers une nouvelle position.pptx";

MoveSlide(FileName, 1, 2);

// Compter les diapositives dans la présentation.

public static int CountSlides(string presentationFile)

{

    // Ouvrir la présentation en lecture seule.

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

    {

        // Passer la présentation à la prochaine méthode CountSlides

        // et retourner le compte de diapositives.

        return CountSlides(presentationDocument);

    }

}

// Compter les diapositives dans la présentation.

public static int CountSlides(PresentationDocument presentationDocument)

{

    // Vérifier si l'objet document est nul.

    if (presentationDocument == null)

    {

        throw new ArgumentNullException("presentationDocument");

    }

    int slidesCount = 0;

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

    PresentationPart presentationPart = presentationDocument.PresentationPart;

    // Obtenir le nombre de diapositives des SlideParts.

    if (presentationPart != null)

    {

        slidesCount = presentationPart.SlideParts.Count();

    }

    // Retourner le compte de diapositives à la méthode précédente.

    return slidesCount;

}

// Déplacer une diapositive vers une position différente dans l'ordre des diapositives dans la présentation.

public static void MoveSlide(string presentationFile, int from, int to)

{

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

    {

        MoveSlide(presentationDocument, from, to);

    }

}

// Déplacer une diapositive vers une position différente dans l'ordre des diapositives dans la présentation.

public static void MoveSlide(PresentationDocument presentationDocument, int from, int to)

{

    if (presentationDocument == null)

    {

        throw new ArgumentNullException("presentationDocument");

    }

    // Appeler la méthode CountSlides pour obtenir le nombre de diapositives dans la présentation.

    int slidesCount = CountSlides(presentationDocument);

    // Vérifier que les positions from et to sont dans les limites et différentes l'une de l'autre.

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

    {

        throw new ArgumentOutOfRangeException("from");

    }

    if (to < 0 || from >= slidesCount || to == from)

    {

        throw new ArgumentOutOfRangeException("to");

    }

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

    PresentationPart presentationPart = presentationDocument.PresentationPart;

    // Le compte de diapositives n'est pas nul, donc la présentation doit contenir des diapositives.            

    Presentation presentation = presentationPart.Presentation;

    SlideIdList slideIdList = presentation.SlideIdList;

    // Obtenir l'ID de la diapositive source.

    SlideId sourceSlide = slideIdList.ChildElements[from] as SlideId;

    SlideId targetSlide = null;

    // Identifier la position de la diapositive cible après laquelle déplacer la diapositive source.

    if (to == 0)

    {

        targetSlide = null;

    }

    if (from < to)

    {

        targetSlide = slideIdList.ChildElements[to] as SlideId;

    }

    else

    {

        targetSlide = slideIdList.ChildElements[to - 1] as SlideId;

    }

    // Enlever la diapositive source de sa position actuelle.

    sourceSlide.Remove();

    // Insérer la diapositive source à sa nouvelle position après la diapositive cible.

    slideIdList.InsertAfter(sourceSlide, targetSlide);

    // Enregistrer la présentation modifiée.

    presentation.Save();

} 

Aspose.Slides


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

string FileName = FilePath + "Déplacer une diapositive vers une nouvelle position.pptx";

MoveSlide(FileName, 1, 2);

// Déplacer une diapositive vers une position différente dans l'ordre des diapositives dans la présentation.

public static void MoveSlide(string presentationFile, int from, int to)

{

    //Instancier la classe PresentationEx pour charger le fichier PPTX source

    using (Presentation pres = new Presentation(presentationFile))

    {

        //Obtenir la diapositive dont la position doit être changée

        ISlide sld = pres.Slides[from];

        ISlide sld2 = pres.Slides[to];

        //Définir la nouvelle position pour la diapositive

        sld2.SlideNumber = from;

        sld.SlideNumber = to;

        //Écrire le PPTX sur le disque

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

    }

}

Télécharger le Code Exemple