Clonar Diapositivas

Clonar Diapositiva en Presentación

Clonar es el proceso de hacer una copia exacta o réplica de algo. Aspose.Slides para C++ también hace posible hacer una copia o clon de cualquier diapositiva y luego insertar esa diapositiva clonada en la presentación actual o en cualquier otra presentación abierta. El proceso de clonación de diapositivas crea una nueva diapositiva que puede ser modificada por los desarrolladores sin cambiar la diapositiva original. Hay varias formas posibles de clonar una diapositiva:

  • Clonar al final dentro de una presentación.
  • Clonar en otra posición dentro de la presentación.
  • Clonar al final en otra presentación.
  • Clonar en otra posición en otra presentación.
  • Clonar en una posición específica en otra presentación.

En Aspose.Slides para C++, (una colección de ISlide objetos) expuestos por el Presentation objeto proporciona los AddClone y InsertClone métodos para realizar los tipos de clonación de diapositivas mencionados anteriormente.

Clonar al Final Dentro de la Presentación

Si deseas clonar una diapositiva y luego usarla dentro del mismo archivo de presentación al final de las diapositivas existentes, utiliza el AddClone método de acuerdo a los pasos que se enumeran a continuación:

  1. Crea una instancia de la Presentation clase.
  2. Instancia la ISlideCollection clase haciendo referencia a la colección de Diapositivas expuesta por el Presentation objeto.
  3. Llama al AddClone método expuesto por el ISlideCollection objeto y pasa la diapositiva a clonar como parámetro al AddClone método.
  4. Escribe el archivo de presentación modificado.

En el ejemplo dado a continuación, hemos clonado una diapositiva (ubicada en la primera posición - índice cero - de la presentación) al final de la presentación.

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// The path to the documents directory.
const String templatePath = u"../templates/AddSlides.pptx";
const String outPath = u"../out/CloneWithinSamePresentationToEnd.pptx";
// Instantiate Presentation class
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// Accessing Slide by ID from collection
SharedPtr<ISlideCollection> slides = pres->get_Slides();
// Clone the desired slide at end of same presentation
slides->AddClone(pres->get_Slides()->idx_get(0));
// Writing the presentation file
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Clonar en Otra Posición en la Presentación

Si deseas clonar una diapositiva y luego usarla dentro del mismo archivo de presentación pero en una posición diferente, utiliza el InsertClone método:

  1. Crea una instancia de la Presentation clase.
  2. Instancia la clase haciendo referencia a la colección de Diapositivas expuesta por el Presentation objeto.
  3. Llama al InsertClone método expuesto por el ISlideCollection objeto y pasa la diapositiva a clonar junto con el índice para la nueva posición como parámetro al InsertClone método.
  4. Escribe la presentación modificada como un archivo PPTX.

En el ejemplo dado a continuación, hemos clonado una diapositiva (ubicada en el índice cero - posición 1 - de la presentación) al índice 1 - Posición 2 - de la presentación.

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// The path to the documents directory.
const String templatePath = u"../templates/AddSlides.pptx";
const String outPath = u"../out/CloneWithInSamePresentation.pptx";
// Instantiate Presentation class
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// Accessing Slide by ID from collection
SharedPtr<ISlideCollection> slides = pres->get_Slides();
// Clone the desired slide to the specified index in the same presentation
slides->InsertClone(2, pres->get_Slides()->idx_get(0));
// Writing the presentation file
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Clonar Diapositiva al Final en Otra Presentación

Si necesitas clonar una diapositiva de una presentación y usarla en otro archivo de presentación, al final de las diapositivas existentes:

  1. Crea una instancia de la Presentation clase que contenga la presentación de la cual se clonará la diapositiva.
  2. Crea una instancia de la Presentation clase que contenga la presentación de destino a la cual se añadirá la diapositiva.
  3. Instancia la ISlideCollection clase haciendo referencia a la colección de Diapositivas expuesta por el objeto Presentation de la presentación de destino.
  4. Llama al AddClone método expuesto por el ISlideCollection objeto y pasa la diapositiva de la presentación fuente como parámetro al AddClone método.
  5. Escribe el archivo de presentación de destino modificado.

En el ejemplo dado a continuación, hemos clonado una diapositiva (de la primera posición de la presentación fuente) al final de la presentación de destino.

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// The path to the documents directory.
const String templatePath = u"../templates/AddSlides.pptx";
const String outPath = u"../out/CloneAtEndOfAnotherPresentation.pptx";
// Instantiate Presentation class
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
//Instantiate target presentation object
SharedPtr<Presentation> destPres = MakeObject<Presentation>();
// Accessing Slide by ID from collection
SharedPtr<ISlideCollection> slideCollection = destPres->get_Slides();
// Clone the desired slide at end of other presentation
slideCollection->AddClone(pres->get_Slides()->idx_get(0));
// Writing the presentation file
destPres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Clonar Diapositiva a Otra Posición en Otra Presentación

Si necesitas clonar una diapositiva de una presentación y usarla en otro archivo de presentación, en una posición específica:

  1. Crea una instancia de la Presentation clase que contenga la presentación fuente de la cual se clonará la diapositiva.
  2. Crea una instancia de la Presentation clase que contenga la presentación a la cual se añadirá la diapositiva.
  3. Instancia la ISlideCollection clase haciendo referencia a la colección de Diapositivas expuesta por el objeto Presentation de la presentación de destino.
  4. Llama al InsertClone método expuesto por el ISlideCollection objeto y pasa la diapositiva de la presentación fuente junto con la posición deseada como parámetro al InsertClone método.
  5. Escribe el archivo de presentación de destino modificado.

En el ejemplo dado a continuación, hemos clonado una diapositiva (del índice cero de la presentación fuente) al índice 1 (posición 2) de la presentación de destino.

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// The path to the documents directory.
const String templatePath = u"../templates/AddSlides.pptx";
const String outPath = u"../out/CloneAtEndOfAnotherPresentation.pptx";
// Instantiate Presentation class
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
//Instantiate target presentation object
SharedPtr<Presentation> destPres = MakeObject<Presentation>();
// Accessing Slide by ID from collection
SharedPtr<ISlideCollection> slideCollection = destPres->get_Slides();
// Clone the desired slide at end of other presentation
slideCollection->AddClone(pres->get_Slides()->idx_get(0));
// Writing the presentation file
destPres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Clonar Diapositiva en una Posición Específica en Otra Presentación

Si necesitas clonar una diapositiva con una diapositiva maestra de una presentación y usarla en otra presentación, primero necesitas clonar la diapositiva maestra deseada de la presentación de origen a la presentación de destino. Luego necesitas usar esa diapositiva maestra para clonar la diapositiva con la diapositiva maestra. El AddClone(ISlide, IMasterSlide) espera una diapositiva maestra de la presentación de destino en lugar de la presentación de origen. Para clonar la diapositiva con la maestra, sigue los pasos a continuación:

  1. Crea una instancia de la Presentation clase que contenga la presentación de origen de la cual se clonará la diapositiva.
  2. Crea una instancia de la Presentation clase que contenga la presentación de destino a la cual se clonará la diapositiva.
  3. Accede a la diapositiva que se va a clonar junto con la diapositiva maestra.
  4. Instancia la IMasterSlideCollection clase haciendo referencia a la colección de Maestras expuesta por el Presentation objeto de la presentación de destino.
  5. Llama al AddClone método expuesto por el IMasterSlideCollection objeto y pasa la maestra de la fuente PPTX que se va a clonar como parámetro al AddClone método.
  6. Instancia la ISlideCollection clase configurando la referencia a la colección de Diapositivas expuesta por el Presentation objeto de la presentación de destino.
  7. Llama al AddClone método expuesto por el ISlideCollection objeto y pasa la diapositiva de la presentación fuente que se va a clonar y la diapositiva maestra como parámetro al AddClone método.
  8. Escribe el archivo de presentación de destino modificado.

En el ejemplo dado a continuación, hemos clonado una diapositiva con maestra (ubicada en el índice cero de la presentación fuente) al final de la presentación de destino utilizando la maestra de la diapositiva fuente.

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// The path to the documents directory.
const String templatePath = u"../templates/AddSlides.pptx";
const String outPath = u"../out/CloneToAnotherPresentationWithMaster.pptx";
// Instantiate Presentation class
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
//Instantiate target presentation object
SharedPtr<Presentation> destPres = MakeObject<Presentation>();
// Accessing Slide by ID from collection
SharedPtr<ISlideCollection> slideCollection = destPres->get_Slides();
// Instantiate ISlide from the collection of slides in source presentation along with
// Master slide
SharedPtr<ISlide> SourceSlide = pres->get_Slides()->idx_get(0);
SharedPtr<IMasterSlide> SourceMaster = SourceSlide->get_LayoutSlide()->get_MasterSlide();
// Clone the desired master slide from the source presentation to the collection of masters in the
// Destination presentation
SharedPtr<IMasterSlideCollection> masters = destPres->get_Masters();
SharedPtr<IMasterSlide> DestMaster = SourceSlide->get_LayoutSlide()->get_MasterSlide();
// Clone the desired master slide from the source presentation to the collection of masters in the
// Destination presentation
SharedPtr<IMasterSlide> iSlide = masters->AddClone(SourceMaster);
// Clone the desired slide from the source presentation with the desired master to the end of the
// Collection of slides in the destination presentation
slideCollection->AddClone(SourceSlide, iSlide, true);
// Clone the desired slide at end of other presentation
slideCollection->InsertClone(1, pres->get_Slides()->idx_get(0));
// Writing the presentation file
destPres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Clonar Diapositiva en Sección Especificada

Si deseas clonar una diapositiva y luego usarla dentro del mismo archivo de presentación pero en una sección diferente, entonces utiliza el AddClone() método expuesto por la interfaz ISlideCollection. Aspose.Slides para C++ hace posible clonar una diapositiva de la primera sección y luego insertar esa diapositiva clonada en la segunda sección de la misma presentación.

El siguiente fragmento de código te muestra cómo clonar una diapositiva e insertar la diapositiva clonada en una sección especificada.

const String outPath = u"../out/CloneSlideIntoSpecifiedSection.pptx";
auto presentation = MakeObject<Presentation>();
presentation->get_Slides()->idx_get(0)->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 200.0f, 50.0f, 300.0f, 100.0f);
presentation->get_Sections()->AddSection(u"Section 1", presentation->get_Slides()->idx_get(0));
auto section2 = presentation->get_Sections()->AppendEmptySection(u"Section 2");
presentation->get_Slides()->AddClone(presentation->get_Slides()->idx_get(0), section2);
presentation->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);