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 # SlideCollectionSlideCollection Methods
Adding Slides
| Method | Signature | Description |
|---|---|---|
add_empty_slide | (layout: LayoutSlide) -> Slide | Append a new blank slide using the given layout. |
insert_empty_slide | (index: int, layout: LayoutSlide) -> Slide | Insert a blank slide at zero-based index using the given layout. |
Cloning Slides
add_clone and insert_clone have multiple overloads:
| Method | Overloads | Description |
|---|---|---|
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
| Method | Signature | Description |
|---|---|---|
remove | (slide: Slide) -> None | Remove the given slide by reference. |
remove_at | (index: int) -> None | Remove the slide at zero-based index. |
Other Methods
| Method | Signature | Description |
|---|---|---|
index_of | (slide: Slide) -> int | Return 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] -> Slide | Return slide at zero-based index. |
__len__ | () -> int | Total number of slides. |
__iter__ | N/A | Iterate 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)