Public API and Backwards Incompatible Changes in Aspose.Slides for PHP via Java 14.9.0

Public API Changes

Added Methods for Replacing Image to PPImage, IPPImage

New methods added:

  • IPPImage.replaceImage(byte[] newImageData)
  • IPPImage.replaceImage(IPPImage newImage)
  $presentation = new Presentation("presentation.pptx");
  # The first way
  # ...
  $imageData = $presentation->getImages()->get_Item(0)->replaceImage($imageData);
  # The second way
  $presentation->getImages()->get_Item(1)->replaceImage($presentation->getImages()->get_Item(0));
  $presentation->save("presentation_out.pptx", SaveFormat::Pptx);

Added Methods for Saving Slides Keeping Page Numbers

The following methods have been added:

  • void IPresentation.save(string fname, int[] slides, SaveFormat format);
  • void IPresentation.save(string fname, int[] slides, SaveFormat format, ISaveOption options);
  • void IPresentation.save(Stream stream, int[] slides, SaveFormat format);
  • void IPresentation.save(Stream stream, int[] slides, SaveFormat format, ISaveOption options);

These methods allow to save specified presentation slides to PDF, XPS, TIFF, HTML formats. The ‘slides’ array allows to specify page numbers, starting from 1.

  save($string, $slides, SaveFormat);

  $presentation = new Presentation($presentationFileName);
  $slides = array(2, 3, 5 );// Array of slides positions

  $presentation->save($outFileName, $slides, SaveFormat::Pdf);

Added the SmartArtLayoutType::Custom Enum Value

This type of SmartArt layout represents diagram with custom template. Custom diagrams only can be loaded from presentation file and can’t be created via method ShapeCollection.addSmartArt(x, y, width, height, SmartArtLayoutType::Custom)

Added the SmartArtShape Class and ISmartArtShape Interface

The Aspose.Slides.SmartArt.SmartArtShape class (and its interface Aspose.Slides.SmartArt.ISmartArtShape) add access to individual shapes inside SmartArt diagram. SmartArtShape can be used to change FillFormat, LineFormat, adding Hyperlinks etc.

Example of usage:

  $pres = new Presentation();
  $smart = $pres->getSlides()->get_Item(0)->getShapes()->addSmartArt(10, 10, 400, 300, SmartArtLayoutType::BasicBlockList);
  $node = $smart->getAllNodes()->get_Item(0);
  foreach($node->getShapes() as $shape) {
    $shape->getFillFormat()->setFillType(FillType::Solid);
    $shape->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->RED);
  }
  $pres->save("out.pptx", SaveFormat::Pptx);

SmartArtShapeCollection class, ISmartArtShapeCollection interface and ISmartArtNode.getShapes() method have been added

The Aspose.Slides.SmartArt.SmartArtShapeCollection class (and its interface Aspose.Slides.SmartArt.ISmartArtShapeCollection) add access to individual shapes inside SmartArt diagram. Collection contains shapes associated with SmartArtNode. Property SmartArtNode.Shapes returns collections of all shapes associated with the node.



  $pres = new Presentation();
  $smart = $pres->getSlides()->get_Item(0)->getShapes()->addSmartArt(10, 10, 400, 300, SmartArtLayoutType::BasicBlockList);
  $node = $smart->getAllNodes()->get_Item(0);
  foreach($node->getShapes() as $shape) {
    $shape->getFillFormat()->setFillType(FillType::Solid);
    $shape->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->RED);
  }
  $pres->save("out.pptx", SaveFormat::Pptx);