Объединение файлов PowerPoint в C#

Объединение презентаций PowerPoint может быть полезно в различных сценариях, таких как объединение содержимого из нескольких PPT/PPTX, объединение частей одной презентации, созданной двумя или более людьми, и т. д. Ручной способ копирования/вставки содержимого может не подходить при работе с с рядом презентаций. Таким образом, эта статья позволяет разработчикам .NET узнать, как программно объединять презентации PowerPoint с помощью C#.

API слияния .NET PowerPoint

Aspose.Slides for .NET — это многофункциональный .NET PowerPoint API, который позволяет создавать документы презентаций и управлять ими. Наряду с этим он позволяет объединять две или более презентаций PowerPoint с использованием C# или VB.NET. Вы можете скачать библиотеку DLL API или установить ее с помощью NuGet.

Объединение презентаций PowerPoint с помощью C#

В этом разделе вы узнаете, как клонировать и объединять все слайды из одной презентации PowerPoint в другую. Для этого вы можете просто клонировать слайды из исходной презентации и добавить их в конец целевой презентации. Ниже приведены шаги для объединения двух презентаций.

  • Создайте объект класса Presentation для загрузки целевого файла презентации.
  • Создайте еще один объект Презентация для загрузки исходной презентации, из которой вы будете клонировать слайды.
  • Получите доступ к коллекции слайдов из исходной презентации с помощью свойства Presentation.Slides.
  • Прокрутите коллекцию слайдов и объедините их в целевую презентацию, используя метод Presentation.Slides.AddClone(ISlide).
  • Сохраните объединенную презентацию с помощью метода Presentation.Save(String, SaveFormat).

В следующем примере кода показано, как объединить две презентации PowerPoint с помощью C#.

// Создание экземпляра объекта Presentation, представляющего целевой файл презентации
using (Presentation presentation1 = new Presentation("presentation1.pptx"))
{
  // Создание экземпляра объекта Presentation, представляющего исходный файл презентации
	using (Presentation presentation2 = new Presentation("presentation2.pptx"))
	{
		foreach (ISlide slide in presentation2.Slides)
		{
      // Объединение слайдов из источника в цель 
			presentation1.Slides.AddClone(slide);
		}
	}
  // Сохранить презентацию
	presentation1.Save("merged-presentation.pptx", Export.SaveFormat.Pptx);
}

Целевая презентация

целевая презентация powerpoint

Презентация источника

исходная презентация PowerPoint для слияния

Объединенная презентация

объединить презентацию PowerPoint C#

Объединение отдельных слайдов презентаций PowerPoint с помощью C#

В предыдущем примере вы объединили все слайды из исходного файла PPTX в целевой PPTX. Однако может быть случай, когда вам нужно объединить только выбранные слайды. В таком случае вы можете указать слайды, которые нужно объединить, используя индекс слайда. Ниже приведены шаги для выполнения этой операции.

  • Загрузите целевую презентацию с помощью класса Presentation.
  • Загрузите исходную презентацию с помощью класса Presentation.
  • Клонируйте нужные слайды, используя метод Presentation1.Slides.AddClone(presentation2.Slides[int Index]).
  • Сохраните объединенную презентацию как новый файл PPTX.

В следующем примере кода показано, как объединить отдельные слайды презентаций с помощью C#.

// Создание экземпляра объекта Presentation, представляющего целевой файл презентации
using (Presentation presentation1 = new Presentation("presentation1.pptx"))
{
  // Создание экземпляра объекта Presentation, представляющего исходный файл презентации
	using (Presentation presentation2 = new Presentation("presentation2.pptx"))
	{
		// Объединить только четные слайды презентации2 (первый слайд имеет индекс 0)
		for (int i = 1; i <= presentation2.Slides.Count; i = i + 2)
		{
			presentation1.Slides.AddClone(presentation2.Slides[i]);
		}
	}
	presentation1.Save("merged-presentation-even.pptx", Export.SaveFormat.Pptx);
}

Объединенная презентация

объединенная презентация PowerPoint с использованием C#

Используйте образец слайдов при объединении презентаций PowerPoint

В обоих предыдущих примерах вы объединили слайды, сохранив дизайн и шаблон исходной презентации. Однако в некоторых случаях может потребоваться изменить макет слайдов в соответствии с целевой презентацией. В таких случаях можно использовать перегруженный метод [presentation1.Slides.AddClone(presentation2.Slides1, Presentation1.Masters[0], true)]12.

В следующем примере кода показано, как объединить слайды в презентации PowerPoint с помощью образца слайдов в C#.

// Создание экземпляра объекта Presentation, представляющего целевой файл презентации
using (Presentation presentation1 = new Presentation("presentation1.pptx"))
{
  // Создание экземпляра объекта Presentation, представляющего исходный файл презентации
	using (Presentation presentation2 = new Presentation("presentation2.pptx"))
	{
		// Объединить первые два слайда только с помощью образца слайдов
		presentation1.Slides.AddClone(presentation2.Slides[0], presentation1.Masters[0], true);
		presentation1.Slides.AddClone(presentation2.Slides[1], presentation1.Masters[0], true);
	}
	presentation1.Save("merged-presentation-master.pptx", Export.SaveFormat.Pptx);
}

Объединенная презентация

комбинированная презентация в PowerPoint с использованием C#

Вывод

В этой статье вы узнали, как объединить две или несколько презентаций PowerPoint с помощью C#. Вы можете перенести образцы кода C#, чтобы объединить презентации с помощью VB.NET. Если вы хотите узнать больше о Aspose .NET PowerPoint API, вы можете посетить документацию.

Смотрите также

Совет: возможно, вам будет интересно попробовать приложение для веб-просмотра презентаций, разработанное с помощью API-интерфейсов Aspose.