Слияние презентаций PowerPoint PPT, PPTX с помощью C#

Слияние Презентации

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

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

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

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

Варианты Слияния

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

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

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

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

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

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

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

using (Presentation pres1 = new Presentation("pres1.pptx"),
    pres2 = new Presentation("pres2.pptx"))
{
    foreach (ISlide slide in pres2.Slides)
    {
        pres1.Slides.AddClone(slide);
    }

    pres1.Save("combined.pptx", SaveFormat.Pptx);
}

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

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

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

using (Presentation pres1 = new Presentation("pres1.pptx"),
    pres2 = new Presentation("pres2.pptx"))
{
    foreach (ISlide slide in pres2.Slides)
    {
        pres1.Slides.AddClone(slide, pres2.Masters[0], allowCloneMissingLayout: true);
    }

    pres1.Save("combined.pptx", SaveFormat.Pptx);
}

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

Слияние Конкретных Слайдов из Презентаций

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

using (Presentation pres1 = new Presentation("pres1.pptx"),
    pres2 = new Presentation("pres2.pptx"))
{
    foreach (ISlide slide in pres2.Slides)
    {
        pres1.Slides.AddClone(slide, pres2.LayoutSlides[0]);
    }

    pres1.Save("combined.pptx", SaveFormat.Pptx);
}

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

Этот код на C# показывает, как объединить слайды из презентаций, применяя ваш предпочтительный макет слайда к ним, чтобы получить одну выходную презентацию:

using (Presentation pres1 = new Presentation("pres1.pptx"),
    pres2 = new Presentation("pres2.pptx"))
{
    foreach (ISlide slide in pres2.Slides)
    {
        pres1.Slides.AddClone(slide, pres2.LayoutSlides[0]);
    }

    pres1.Save("combined.pptx", SaveFormat.Pptx);
}

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

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

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

using (Presentation pres1 = new Presentation("pres1.pptx"),
   pres2 = new Presentation("pres2.pptx"))
{
   pres2.SlideSize.SetSize(pres1.SlideSize.Size.Width, pres1.SlideSize.Size.Height, SlideSizeScaleType.EnsureFit);
 
   foreach (ISlide slide in pres2.Slides)
   {
       pres1.Slides.AddClone(slide);
   }
 
   pres1.Save("combined.pptx", SaveFormat.Pptx);
}

Слияние Слайдов в Раздел Презентации

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

using (Presentation pres1 = new Presentation("pres1.pptx"),
    pres2 = new Presentation("pres2.pptx"))
{
    for (var index = 0; index < pres2.Slides.Count; index++)
    {
        ISlide slide = pres2.Slides[index];
        pres1.Slides.AddClone(slide, pres1.Sections[0]);
    }

    pres1.Save("combined.pptx", SaveFormat.Pptx);
}

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