Combinar Presentación - API de PowerPoint de C++

Fusión de Presentaciones

Cuando combinas una presentación con otra, estás efectivamente combinando sus diapositivas en una sola presentación para obtener un solo archivo.

Qué Se Puede Combinar

Con Aspose.Slides, puedes combinar

  • presentaciones completas. Todas las diapositivas de las presentaciones terminan en una sola presentación
  • diapositivas específicas. Las diapositivas seleccionadas terminan en una sola presentación
  • presentaciones en un formato (PPT a PPT, PPTX a PPTX, etc.) y en diferentes formatos (PPT a PPTX, PPTX a ODP, etc.) entre sí.

Opciones de Fusión

Puedes aplicar opciones que determinan si

  • cada diapositiva en la presentación de salida mantiene un estilo único
  • se utiliza un estilo específico para todas las diapositivas en la presentación de salida.

Para fusionar presentaciones, Aspose.Slides proporciona métodos AddClone (de la interfaz ISlideCollection). Hay varias implementaciones de los métodos AddClone que definen los parámetros del proceso de fusión de presentaciones. Cada objeto Presentación tiene una colección Slides, por lo que puedes llamar un método AddClone desde la presentación a la que deseas fusionar diapositivas.

El método AddClone devuelve un objeto ISlide, que es un clon de la diapositiva de origen. Las diapositivas en una presentación de salida son simplemente una copia de las diapositivas de origen. Por lo tanto, puedes realizar cambios en las diapositivas resultantes (por ejemplo, aplicar estilos u opciones de formato o diseños) sin preocuparte de que las presentaciones de origen se vean afectadas.

Fusionar Presentaciones

Aspose.Slides proporciona el método AddClone (ISlide) que te permite combinar diapositivas mientras las diapositivas mantienen sus diseños y estilos (parámetros por defecto).

Este código C++ te muestra cómo fusionar presentaciones:

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);

Fusionar Presentaciones con Maestro de Diapositivas

Aspose.Slides proporciona el método AddClone (ISlide, IMasterSlide, bool) que te permite combinar diapositivas mientras aplicas una plantilla de presentación de maestro de diapositivas. De esta manera, si es necesario, puedes cambiar el estilo de las diapositivas en la presentación de salida.

Este código en C++ demuestra la operación descrita:

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);

Si deseas que las diapositivas en la presentación de salida tengan un diseño diferente, usa el método AddClone (ISlide, ILayoutSlide) en su lugar al fusionar.

Fusionar Diapositivas Específicas de Presentaciones

Este código C++ te muestra cómo seleccionar y combinar diapositivas específicas de diferentes presentaciones para obtener una sola presentación de salida:

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);

Fusionar Presentaciones Con Diseño de Diapositiva

Este código C++ te muestra cómo combinar diapositivas de presentaciones mientras aplicas tu diseño de diapositiva preferido a ellas para obtener una presentación de salida:

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);

Fusionar Presentaciones Con Diferentes Tamaños de Diapositivas

Para fusionar 2 presentaciones con diferentes tamaños de diapositivas, debes redimensionar una de las presentaciones para que su tamaño coincida with el tamaño de la otra presentación.

Este código de muestra demuestra la operación descrita:

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);

Fusionar Diapositivas a Sección de Presentación

Este código C++ te muestra cómo fusionar una diapositiva específica a una sección en una presentación:

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);

La diapositiva se agrega al final de la sección.