Aspose.Slides 1.6.5 released!

Hot fix contains:

  • New: Speed and memory optimization.
  • Fixed: Wrong values of portion’s and paragraph’s properties in some cases.
  • Fixed: Bug with adding Links (generating unique id for the links).
  • New: SlideShowTransition can be changed now even if slide didn’t have any transition effects before.
  • New: All text frames and text holders will be saved to the destination ppt file as unicode. It’s possible now to write unicode text to any text frame without preparing special templete before.
  • New: Slides can be moved inside one presentation by changing Slide.SlidePosition property.
  • New: First version of own text rendering engine. Some formatting types are not supported yet but will be implemented soon. Improved speed and memory requirements. It renders up to 10 simple slides (2 text frames and picture) per second on my P4 1.7GHz.
  • New: New cloning system. It’s not compatible with previous versions. Please update your code!
    • Master slides can’t be cloned separately anymore.
    • Please check CloneSlide demos (C# and VB.Net) and new public Slide CloneSlide(Slide,int,Presentation,SortedList); method.
      Before using new CloneSlide you should initialize empty SortedList object. It used to store internal technical information about ids of all shapes in the source presentation. Must be defined own SortedList for each source presentation. If SortedList is empty array new CloneSlide will clone slide together with master slides. If it’s not empty (already used to clone slide from this ppt) then only visible slide will be cloned and info about masters will be updated automatically.
      If you would like to create own master for each cloned slide you can simple clear SortedList before cloning.

Examples:

Clone all slides to another presentation and create only one copy of master slides:

Presentation part1 = new Presentation(args[0]);
Presentation part2 = new Presentation(args[1]);
SortedList temp = new SortedList();
for (int i = 0; i < part2.Slides.Count; i++)
{
part2.CloneSlide(part2.Slides[i], part1.Slides.Count, part1, temp);
}
part1.Write(args[2]);

Clone each slide with own master slide:

Presentation part1 = new Presentation(args[0]);
Presentation part2 = new Presentation(args[1]);
SortedList temp = new SortedList();
for (int i = 0; i < part2.Slides.Count; i++)
{
temp.Clear();
part2.CloneSlide(part2.Slides[i], part1.Slides.Count, part1, temp);
}
part1.Write(args[2]);