Add Slides to Presentations in PHP

Add a Slide to a Presentation

Aspose.Slides for PHP via Java allows developers to add empty slides to their presentation. To add an empty slide in the presentation, please follow the steps below:

  • Create an instance of Presentation class.
  • Instantiate ISlideCollection class by setting a reference to the Slides (collection of content Slide objects) property exposed by the Presentation object.
  • Add an empty slide to the presentation at the end of the content slides collection by calling the addEmptySlide methods exposed by ISlideCollection object.
  • Do some work with the newly added empty slide.
  • Finally, write the presentation file using the Presentation object.
  # Instantiate Presentation class that represents the presentation file
  $pres = new Presentation();
  try {
    # Instantiate SlideCollection calss
    $slds = $pres->getSlides();
    for($i = 0; $i < java_values($pres->getLayoutSlides()->size()) ; $i++) {
      # Add an empty slide to the Slides collection
      $slds->addEmptySlide($pres->getLayoutSlides()->get_Item($i));
    }
    # Do some work on the newly added slide
    # Save the PPTX file to the Disk
    $pres->save("EmptySlide.pptx", SaveFormat::Pptx);
  } finally {
    $pres->dispose();
  }

FAQ

Can I insert a new slide at a specific position, not just at the end?

Yes. The library supports slide collections and insert/clone operations, so you can add a slide at the required index rather than only at the end.

Are the theme/styles preserved when adding a slide based on a layout?

Yes. A layout inherits formatting from its master, and the new slide inherits from the selected layout and its associated master.

Which slide is present in a new “empty” presentation before adding slides?

A newly created presentation already contains one blank slide with index zero. This is important to consider when calculating insertion indices.

How do I choose the “right” layout for a new slide if the master has many options?

Generally choose the LayoutSlide that matches the required structure (Title and Content, Two Content, etc.). If such a layout is missing, you can add it to the master and then use it.