Слияние презентаций

Слияние презентаций

Когда вы сливаете одну презентацию с другой, вы фактически комбинируете их слайды в одной презентации, чтобы получить один файл.

Что можно объединить

С помощью Aspose.Slides вы можете объединять

  • целые презентации. Все слайды из презентаций окажутся в одной презентации
  • конкретные слайды. Выбранные слайды окажутся в одной презентации
  • презентации в одном формате (PPT в PPT, PPTX в PPTX и т. д.) и в разных форматах (PPT в PPTX, PPTX в ODP и т. д.) друг с другом.

Опции слияния

Вы можете применить параметры, которые определяют, будет ли

  • каждый слайд в итоговой презентации сохранять уникальный стиль
  • для всех слайдов в итоговой презентации используется один и тот же стиль.

Для слияния презентаций Aspose.Slides предоставляет методы AddClone (из интерфейса ISlideCollection). Существует несколько реализаций методов AddClone, которые определяют параметры процесса слияния презентаций. У каждого объекта Presentation есть коллекция Slides, поэтому вы можете вызывать метод AddClone из презентации, в которую вы хотите объединить слайды.

Метод AddClone возвращает объект ISlide, который является клоном исходного слайда. Слайды в итоговой презентации просто копируются из исходных. Таким образом, вы можете вносить изменения в полученные слайды (например, применять стили или параметры форматирования или макета) без опасений о том, что исходные презентации будут затронуты.

Слияние презентаций

Aspose.Slides предоставляет метод AddClone(ISlide) , который позволяет вам комбинировать слайды, сохраняя их макеты и стили (параметры по умолчанию).

Этот PHP код показывает, как объединить презентации:

  $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();
    }
  }

Слияние презентаций с использованием мастер-слайда

Aspose.Slides предоставляет метод AddClone(ISlide, IMasterSlide, boolean) , который позволяет вам комбинировать слайды, применяя шаблон презентации мастер-слайда. Таким образом, если необходимо, вы сможете изменить стиль для слайдов в итоговой презентации.

Этот код демонстрирует описанную операцию:

  $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();
    }
  }

Если вы хотите, чтобы слайды в итоговой презентации имели другой макет слайда, используйте метод AddClone(ISlide, ILayoutSlide) вместо при слиянии.

Слияние определенных слайдов из презентаций

Этот PHP код показывает, как выбрать и объединить определенные слайды из разных презентаций, чтобы получить одну итоговую презентацию:

  $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();
    }
  }

Слияние презентаций с макетом слайда

Этот PHP код показывает, как комбинировать слайды из презентаций, применяя к ним предпочтительный макет слайда, чтобы получить одну итоговую презентацию:

  $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();
    }
  }

Слияние презентаций с разными размерами слайдов

Чтобы объединить 2 презентации с разными размерами слайдов, вам нужно изменить размер одной из презентаций так, чтобы его размер соответствовал размеру другой презентации.

Этот пример кода демонстрирует описанную операцию:

  $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();
    }
  }

Слияние слайдов в разделе презентации

Этот PHP код показывает, как объединить конкретный слайд в раздел презентации:

  $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();
    }
  }

Слайд добавляется в конце раздела.