SlideCollection — Aspose.Slides FOSS Python API Reference

SlideCollection manages all Slide objects in a presentation. It is accessed via prs.slides and is never instantiated directly.

Package: aspose.slides_foss

Access:

import aspose.slides_foss as slides

with slides.Presentation("deck.pptx") as prs:
    col = prs.slides   # SlideCollection

SlideCollection Methods

Adding Slides

MethodSignatureDescription
add_empty_slide(layout: LayoutSlide) -> SlideAppend a new blank slide using the given layout.
insert_empty_slide(index: int, layout: LayoutSlide) -> SlideInsert a blank slide at zero-based index using the given layout.

Cloning Slides

add_clone and insert_clone have multiple overloads:

MethodOverloadsDescription
add_clone(source_slide)Clone source_slide and append it.
add_clone(source_slide, dest_layout)Clone and apply a different layout.
add_clone(source_slide, dest_master, allow_clone_missing_layout)Clone and apply a master.
insert_clone(index, source_slide)Clone and insert at position.
insert_clone(index, source_slide, dest_layout)Clone with a different layout at position.
insert_clone(index, source_slide, dest_master, allow_clone_missing_layout)Clone with a master at position.

Removing Slides

MethodSignatureDescription
remove(slide: Slide) -> NoneRemove the given slide by reference.
remove_at(index: int) -> NoneRemove the slide at zero-based index.

Other Methods

MethodSignatureDescription
index_of(slide: Slide) -> intReturn the index of slide, or -1 if not found.
to_array() -> list[Slide]Return all slides as a list.
to_array(start_index, count) -> list[Slide]Return a sub-range of slides.
__getitem__[index: int] -> SlideReturn slide at zero-based index.
__len__() -> intTotal number of slides.
__iter__N/AIterate over all slides.

Code Examples

Add and Remove Slides

import aspose.slides_foss as slides
from aspose.slides_foss import SlideLayoutType
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    # Add a blank slide using the blank layout
    blank = prs.layout_slides.get_by_type(SlideLayoutType.BLANK)
    if blank is None:
        blank = prs.layout_slides[0]

    new_slide = prs.slides.add_empty_slide(blank)
    print(f"Now {len(prs.slides)} slides")

    # Remove the first slide
    prs.slides.remove_at(0)
    print(f"Now {len(prs.slides)} slides")

    prs.save("result.pptx", SaveFormat.PPTX)

Clone a Slide Within the Same Presentation

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

with slides.Presentation("template.pptx") as prs:
    original = prs.slides[0]
    cloned = prs.slides.add_clone(original)
    cloned.shapes[0].add_text_frame("Copy of slide 1")
    prs.save("cloned.pptx", SaveFormat.PPTX)

Clone a Slide from Another Presentation

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

with slides.Presentation("source.pptx") as src, \
     slides.Presentation("target.pptx") as tgt:
    # Clone the first slide from source into target
    tgt.slides.add_clone(src.slides[0])
    tgt.save("target-updated.pptx", SaveFormat.PPTX)

Insert a Slide at a Specific Position

import aspose.slides_foss as slides
from aspose.slides_foss import SlideLayoutType
from aspose.slides_foss.export import SaveFormat

with slides.Presentation("deck.pptx") as prs:
    layout = prs.layout_slides.get_by_type(SlideLayoutType.BLANK) \
             or prs.layout_slides[0]

    # Insert a new slide at position 1 (second slide)
    new_slide = prs.slides.insert_empty_slide(1, layout)
    new_slide.shapes.add_auto_shape(
        slides.ShapeType.RECTANGLE, 50, 50, 300, 100
    ).add_text_frame("Inserted slide")

    prs.save("deck-with-insert.pptx", SaveFormat.PPTX)

Reorder Slides Using Clone and Remove

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

with slides.Presentation("deck.pptx") as prs:
    # Move the last slide to position 0
    last = prs.slides[len(prs.slides) - 1]
    prs.slides.insert_clone(0, last)
    prs.slides.remove_at(len(prs.slides) - 1)
    prs.save("reordered.pptx", SaveFormat.PPTX)

See Also