Объединение Презентаций - C++ PowerPoint API

Объединение Презентаций

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

Что Можно Объединять

С помощью 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++ показывает, как объединять презентации:

auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
for (const auto& slide : pres2->get_Slides())
{
    pres1->get_Slides()->AddClone(slide);
}

pres1->Save(u"combined.pptx", SaveFormat::Pptx);

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

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

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

auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
for (const auto& slide : pres2->get_Slides())
{
    pres1->get_Slides()->AddClone(slide, pres2->get_Masters()->idx_get(0), true);
}

pres1->Save(u"combined.pptx", SaveFormat::Pptx);

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

Объединение Конкретных Слайдов Из Презентаций

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

auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
for (const auto& slide : pres2->get_Slides())
{
    pres1->get_Slides()->AddClone(slide, pres2->get_LayoutSlides()->idx_get(0));
}

pres1->Save(u"combined.pptx", SaveFormat::Pptx);

Объединение Презентаций С Макетом Слайда

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

auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
for (const auto& slide : pres2->get_Slides())
{
    pres1->get_Slides()->AddClone(slide, pres2->get_LayoutSlides()->idx_get(0));
}

pres1->Save(u"combined.pptx", SaveFormat::Pptx);

Объединение Презентаций С Разными Размером Слайдов

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

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

auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres1Size = pres1->get_SlideSize()->get_Size();

auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
pres2->get_SlideSize()->SetSize(pres1Size.get_Width(), pres1Size.get_Height(), SlideSizeScaleType::EnsureFit);

for (const auto& slide : pres2->get_Slides())
{
    pres1->get_Slides()->AddClone(slide);
}

pres1->Save(u"combined.pptx", SaveFormat::Pptx);

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

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

auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
for (int32_t index = 0; index < pres2->get_Slides()->get_Count(); index++)
{
    auto slide = pres2->get_Slides()->idx_get(index);
    pres1->get_Slides()->AddClone(slide, pres1->get_Sections()->idx_get(0));
}

pres1->Save(u"combined.pptx", SaveFormat::Pptx);

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