Fusionar Presentación

Fusión de Presentaciones

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

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

Puede aplicar opciones que determinan si

  • cada diapositiva en la presentación de salida retiene 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 (del 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 fusionar las diapositivas.

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

Fusionar Presentaciones

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

Este código PHP le muestra cómo fusionar presentaciones:

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide);
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

Fusionar Presentaciones con Patrón de Diapositivas

Aspose.Slides proporciona el método AddClone(ISlide, IMasterSlide, boolean) que le permite combinar diapositivas mientras aplica una plantilla de presentación de patrón de diapositivas. De esta manera, si es necesario, puede cambiar el estilo de las diapositivas en la presentación de salida.

Este código demuestra la operación descrita:

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide, $pres2->getMasters()->get_Item(0), true);
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

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 fusionar.

Fusionar Diapositivas Específicas de Presentaciones

Este código PHP le muestra cómo seleccionar y combinar diapositivas específicas de diferentes presentaciones para obtener una presentación de salida:

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide, $pres2->getLayoutSlides()->get_Item(0));
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

Fusionar Presentaciones Con Diseño de Diapositivas

Este código PHP le muestra cómo combinar diapositivas de presentaciones aplicando su diseño de diapositivas preferido a ellas para obtener una presentación de salida:

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide, $pres2->getLayoutSlides()->get_Item(0));
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

Fusionar Presentaciones Con Tamaños de Diapositiva Diferentes

Para fusionar 2 presentaciones con tamaños de diapositiva diferentes, debe cambiar el tamaño de una de las presentaciones para que su tamaño coincida con el de la otra presentación.

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

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      $pres2->getSlideSize()->setSize($pres1->getSlideSize()->getSize()->getWidth(), $pres1->getSlideSize()->getSize()->getHeight(), SlideSizeScaleType::EnsureFit);
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide);
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

Fusionar Diapositivas a una Sección de Presentación

Este código PHP le muestra cómo fusionar una diapositiva específica a una sección en una presentación:

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide, $pres1->getSections()->get_Item(0));
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

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