Fusionar presentaciones de forma eficiente en C++
Tip
Tal vez quiera probar Aspose free online Merger app. Permite a los usuarios combinar presentaciones de PowerPoint en el mismo formato (PPT a PPT, PPTX a PPTX, etc.) y combinar presentaciones en diferentes formatos (PPT a PPTX, PPTX a ODP, etc.).
Fusión de presentaciones
Al fusionar una presentación con otra, está combinando efectivamente sus diapositivas en una sola presentación para obtener un archivo.
Info
La mayoría de los programas de presentación (PowerPoint u OpenOffice) carecen de funciones que permitan a los usuarios combinar presentaciones de esta manera.
Aspose.Slides for C++ , sin embargo, le permite combinar presentaciones de diferentes formas. Puede combinar presentaciones con todas sus formas, estilos, textos, formato, comentarios, animaciones, etc., sin preocuparse por la pérdida de calidad o datos.
Ver también
Qué se puede fusionar
Con Aspose.Slides, puede fusionar
- 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 mismo formato (PPT a PPT, PPTX a PPTX, etc.) y en diferentes formatos (PPT a PPTX, PPTX a ODP, etc.) entre sí.
Note
Además de las presentaciones, Aspose.Slides permite combinar otros archivos:
- Imágenes, como JPG to JPG o PNG to PNG
- Documentos, como PDF to PDF o HTML to HTML
- Y dos archivos diferentes, como image to PDF o JPG to PDF o TIFF to PDF.
Opciones de fusión
Puede aplicar opciones que determinan si
- cada diapositiva en la presentación de salida conserva un estilo único
- se utiliza un estilo específico para todas las diapositivas en la presentación de salida.
Para combinar 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 Presentation tiene una colección Slides, por lo que puede llamar a un método AddClone desde la presentación a la que desea combinar diapositivas.
El método AddClone devuelve un objeto ISlide, que es una réplica de la diapositiva origen. Las diapositivas en una presentación de salida son simplemente una copia de las diapositivas de la fuente. Por lo tanto, puede modificar las diapositivas resultantes (por ejemplo, aplicar estilos, opciones de formato o diseños) sin preocuparse de que las presentaciones de origen se vean afectadas.
Fusionar presentaciones
Aspose.Slides proporciona el método AddClone (ISlide) que permite combinar diapositivas mientras las diapositivas conservan sus diseños y estilos (parámetros predeterminados).
Este código C++ le 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 un maestro de diapositivas
Aspose.Slides proporciona el método AddClone (ISlide, IMasterSlide, bool) que permite combinar diapositivas aplicando una plantilla de maestro de diapositivas. De este modo, si es necesario, puede cambiar el estilo de las diapositivas en la presentación de salida.
Este código 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);
Note
El diseño de diapositiva para el maestro se determina automáticamente. Cuando no se puede determinar un diseño adecuado, si el parámetro booleanoallowCloneMissingLayout del método AddClone está establecido en true, se utiliza el diseño de la diapositiva origen. De lo contrario, se lanzará una PptxEditException.
Si desea que las diapositivas en la presentación de salida tengan un diseño de diapositiva diferente, utilice el método AddClone (ISlide, ILayoutSlide) en su lugar al combinar.
Fusionar diapositivas específicas de presentaciones
Combinar diapositivas específicas de varias presentaciones es útil para crear paquetes de diapositivas personalizados. Aspose.Slides C++ permite seleccionar e importar solo las diapositivas que necesita. La API preserva el formato, el diseño y la apariencia de las diapositivas originales.
El siguiente código C++ crea una nueva presentación, agrega diapositivas de título de dos presentaciones distintas y guarda el resultado en un archivo:
SmartPtr<ISlide> GetTitleSlide(SmartPtr<IPresentation> presentation)
{
for (auto&& slide : presentation->get_Slides())
{
if (slide->get_LayoutSlide()->get_LayoutType() == SlideLayoutType::Title)
{
return slide;
}
}
return nullptr;
}
auto presentation = MakeObject<Presentation>();
auto presentation1 = MakeObject<Presentation>(u"presentation1.pptx");
auto presentation2 = MakeObject<Presentation>(u"presentation2.pptx");
presentation->get_Slides()->RemoveAt(0);
auto slide1 = GetTitleSlide(presentation1);
if (slide1 != nullptr)
presentation->get_Slides()->AddClone(slide1);
auto slide2 = GetTitleSlide(presentation2);
if (slide2 != nullptr)
presentation->get_Slides()->AddClone(slide2);
presentation->Save(u"combined.pptx", SaveFormat::Pptx);
presentation2->Dispose();
presentation1->Dispose();
presentation->Dispose();
Fusionar presentaciones con un diseño de diapositiva
Este código C++ le muestra cómo combinar diapositivas de presentaciones aplicando su diseño de diapositiva preferido para obtener una única 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 diapositiva
Note
No se pueden fusionar presentaciones con diferentes tamaños de diapositiva.Para fusionar 2 presentaciones con diferentes tamaños de diapositiva, debe cambiar el tamaño de una de las presentaciones para que coincida con el de la otra.
Este código de ejemplo 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 una sección de presentación
Este código C++ le 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.
Tip
Aspose ofrece una FREE Collage web app. Con este servicio en línea, puede combinar JPG to JPG o PNG to PNG imágenes, crear photo grids, y más.Preguntas frecuentes
¿Se conservan las notas del orador al fusionar?
Sí. Al clonar diapositivas, Aspose.Slides traslada todos los elementos de la diapositiva, incluidas notas, formato y animaciones.
¿Se transfieren los comentarios y sus autores?
Los comentarios, como parte del contenido de la diapositiva, se copian con la diapositiva. Las etiquetas de autor de los comentarios se conservan como objetos de comentario en la presentación resultante.
¿Qué ocurre si la presentación origen está protegida con contraseña?
Debe abrirse con la contraseña mediante LoadOptions::set_Password; tras cargarla, esas diapositivas pueden clonarse de forma segura en un archivo de destino sin protección (o también protegido).
¿Qué tan seguro es el proceso de fusión en entornos multihilo?
No utilice la misma instancia de Presentation desde múltiples hilos. La regla recomendada es “un documento — un hilo”; diferentes archivos pueden procesarse en paralelo en hilos independientes.
