حذف یک اسلاید

OpenXML SDK


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

string FileName = FilePath + "Delete a slide.pptx";

DeleteSlide(FileName, 1);

// دریافت شیء ارائه و ارسال آن به متد DeleteSlide بعدی.

public static void DeleteSlide(string presentationFile, int slideIndex)

{

    // سند منبع را به صورت خواندن/نوشتن باز کنید.

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

    {

        // سند منبع و شاخص اسلایدی که باید حذف شود را به متد DeleteSlide بعدی ارسال کنید.

        DeleteSlide(presentationDocument, slideIndex);

    }

}

// حذف اسلاید مشخص شده از ارائه.

public static void DeleteSlide(PresentationDocument presentationDocument, int slideIndex)

{

    if (presentationDocument == null)

    {

        throw new ArgumentNullException("presentationDocument");

    }

    // از نمونه CountSlides برای دریافت تعداد اسلایدها در ارائه استفاده کنید.

    int slidesCount = CountSlides(presentationDocument);

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

    {

        throw new ArgumentOutOfRangeException("slideIndex");

    }

    // دریافت بخش ارائه از سند ارائه.

    PresentationPart presentationPart = presentationDocument.PresentationPart;

    // دریافت ارائه از بخش ارائه.

    Presentation presentation = presentationPart.Presentation;

    // دریافت فهرست شناسه‌های اسلاید در ارائه.

    SlideIdList slideIdList = presentation.SlideIdList;

    // دریافت شناسه اسلاید موردنظر

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

    // دریافت شناسه رابطه اسلاید.

    string slideRelId = slideId.RelationshipId;

    // حذف اسلاید از فهرست اسلایدها.

    slideIdList.RemoveChild(slideId);

    //

    // حذف مراجع اسلاید از تمام نمایش‌های سفارشی.

    if (presentation.CustomShowList != null)

    {

        // پیمایش فهرست نمایش‌های سفارشی.

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

        {

            if (customShow.SlideList != null)

            {

                // اعلام یک فهرست پیوندی از ورودی‌های فهرست اسلایدها.

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

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

                {

                    // یافتن مرجع اسلاید برای حذف از نمایش سفارشی.

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

                    {

                        slideListEntries.AddLast(slideListEntry);

                    }

                }

                // حذف تمام مراجع اسلاید از نمایش سفارشی.

                foreach (SlideListEntry slideListEntry in slideListEntries)

                {

                    customShow.SlideList.RemoveChild(slideListEntry);

                }

            }

        }

    }

    // ذخیرهٔ ارائهٔ تغییر یافته.

    presentation.Save();

    // دریافت بخش اسلاید برای اسلاید مشخص شده.

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

    // حذف بخش اسلاید.

    presentationPart.DeletePart(slidePart);

}

// دریافت شیء ارائه و ارسال آن به متد CountSlides بعدی.

public static int CountSlides(string presentationFile)

{

    // ارائه را به صورت فقط-خواندنی باز کنید.

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

    {

        // ارائه را به متد CountSlide بعدی ارسال کنید

        // و تعداد اسلایدها را برگردانید.

        return CountSlides(presentationDocument);

    }

}

// شمارش اسلایدهای ارائه.

public static int CountSlides(PresentationDocument presentationDocument)

{

    // بررسی وجود شیء سند تهی.

    if (presentationDocument == null)

    {

        throw new ArgumentNullException("presentationDocument");

    }

    int slidesCount = 0;

    // دریافت بخش ارائه از سند.

    PresentationPart presentationPart = presentationDocument.PresentationPart;

    // دریافت تعداد اسلایدها از SlideParts.

    if (presentationPart != null)

    {

        slidesCount = presentationPart.SlideParts.Count();

    }

    // برگرداندن تعداد اسلایدها به متد قبلی.

    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)

{

    //یک شیء PresentationEx ایجاد می‌کند که نمایانگر یک فایل PPTX است
    using (Presentation pres = new Presentation(presentationFile))

    {

        //دسترسی به اسلاید با استفاده از شاخص آن در مجموعه اسلایدها
        ISlide slide = pres.Slides[slideIndex];


        //حذف یک اسلاید با استفاده از مرجع آن
        pres.Slides.Remove(slide);


        //نوشتن ارائه به صورت فایل PPTX
        pres.Save(presentationFile,Aspose.Slides.Export.SaveFormat.Pptx);

    }

}

دانلود کد نمونه