Fusionner la présentation

Fusion des présentations

Lorsque vous fusionnez une présentation avec une autre, vous combinez effectivement leurs diapositives en une seule présentation pour obtenir un fichier.

Ce qui peut être fusionné

Avec Aspose.Slides, vous pouvez fusionner

  • des présentations entières. Toutes les diapositives des présentations se retrouvent dans une seule présentation
  • des diapositives spécifiques. Les diapositives sélectionnées se retrouvent dans une seule présentation
  • des présentations dans un même format (PPT à PPT, PPTX à PPTX, etc.) et dans différents formats (PPT à PPTX, PPTX à ODP, etc.) les unes avec les autres.

Options de fusion

Vous pouvez appliquer des options qui déterminent si

  • chaque diapositive dans la présentation de sortie conserve un style unique
  • un style spécifique est utilisé pour toutes les diapositives dans la présentation de sortie.

Pour fusionner des présentations, Aspose.Slides fournit les méthodes AddClone (de l’interface ISlideCollection). Il existe plusieurs implémentations des méthodes AddClone qui définissent les paramètres du processus de fusion des présentations. Chaque objet Presentation a une collection Slides afin que vous puissiez appeler une méthode AddClone à partir de la présentation avec laquelle vous souhaitez fusionner les diapositives.

La méthode AddClone retourne un objet ISlide, qui est un clone de la diapositive source. Les diapositives dans une présentation de sortie sont simplement une copie des diapositives de la source. Par conséquent, vous pouvez apporter des modifications aux diapositives résultantes (par exemple, appliquer des styles ou des options de mise en forme ou des mises en page) sans vous soucier de l’impact sur les présentations sources.

Fusionner des présentations

Aspose.Slides fournit la méthode AddClone(ISlide) qui vous permet de combiner des diapositives tout en conservant leurs mises en page et styles (paramètres par défaut).

Ce code PHP vous montre comment fusionner des présentations :

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide);
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

Fusionner des présentations avec le maître de diapositives

Aspose.Slides fournit la méthode AddClone(ISlide, IMasterSlide, boolean) qui vous permet de combiner des diapositives tout en appliquant un modèle de présentation maître de diapositives. De cette manière, si nécessaire, vous pouvez changer le style des diapositives dans la présentation de sortie.

Ce code démontre l’opération décrite :

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide, $pres2->getMasters()->get_Item(0), true);
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

Si vous souhaitez que les diapositives dans la présentation de sortie aient une mise en page différente, utilisez la méthode AddClone(ISlide, ILayoutSlide) à la place lors de la fusion.

Fusionner des diapositives spécifiques depuis des présentations

Ce code PHP vous montre comment sélectionner et combiner des diapositives spécifiques de différentes présentations pour obtenir une présentation de sortie :

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide, $pres2->getLayoutSlides()->get_Item(0));
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

Fusionner des présentations avec mise en page de diapositive

Ce code PHP vous montre comment combiner des diapositives de présentations tout en appliquant votre mise en page de diapositive préférée pour obtenir une présentation de sortie :

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide, $pres2->getLayoutSlides()->get_Item(0));
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

Fusionner des présentations avec différentes tailles de diapositives

Pour fusionner 2 présentations avec des tailles de diapositives différentes, vous devez redimensionner l’une des présentations pour qu’elle corresponde à la taille de l’autre présentation.

Ce code d’exemple démontre l’opération décrite :

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      $pres2->getSlideSize()->setSize($pres1->getSlideSize()->getSize()->getWidth(), $pres1->getSlideSize()->getSize()->getHeight(), SlideSizeScaleType::EnsureFit);
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide);
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

Fusionner des diapositives dans une section de présentation

Ce code PHP vous montre comment fusionner une diapositive spécifique dans une section d’une présentation :

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide, $pres1->getSections()->get_Item(0));
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

La diapositive est ajoutée à la fin de la section.