Presentaties efficiënt samenvoegen in PHP

Overzicht

Aspose.Slides stelt u in staat presentaties te combineren door dia’s van de ene presentatie te klonen naar een andere. Dit artikel legt uit hoe u volledige presentaties of geselecteerde dia’s kunt samenvoegen, een slide‑master of een specifieke lay‑out tijdens het samenvoegen kunt gebruiken, presentaties met verschillende diaformaten kunt verwerken en samengevoegde dia’s aan een presentatiesectie kunt toevoegen. Het behandelt ook praktische opmerkingen over samengevoegde inhoud, waaronder spreker­notities, opmerkingen, met wachtwoord beveiligde bronbestanden en thread‑gebruik.

Presentatie samenvoegen

Wanneer u de ene presentatie met de andere samenvoegt, combineert u effectief hun dia’s in één presentatie om één bestand te verkrijgen.

Wat kan worden samengevoegd

Met Aspose.Slides kunt u

  • volledige presentaties. Alle dia’s uit de presentaties komen in één presentatie terecht
  • specifieke dia’s. Geselecteerde dia’s komen in één presentatie terecht
  • presentaties in één formaat (PPT naar PPT, PPTX naar PPTX, enz.) en in verschillende formaten (PPT naar PPTX, PPTX naar ODP, enz.) naar elkaar toe.

Samenvoegopties

U kunt opties toepassen die bepalen of

  • elke dia in de uitvoerpresentatie een unieke stijl behoudt
  • een specifieke stijl wordt gebruikt voor alle dia’s in de uitvoerpresentatie.

Om presentaties samen te voegen, biedt Aspose.Slides de addClone methoden (van de SlideCollection klasse). Er zijn verschillende implementaties van de addClone‑methoden die de parameters van het samenvoegproces definiëren. Elk Presentation‑object heeft een slide collectie, zodat u een addClone‑methode kunt aanroepen vanuit de presentatie waaraan u dia’s wilt toevoegen.

De addClone‑methode retourneert een Slide‑object, dat een kloon van de bron‑dia is. De dia’s in een uitvoerpresentatie zijn simpelweg een kopie van de bron‑dia’s. Daarom kunt u wijzigingen aanbrengen in de resulterende dia’s (bijvoorbeeld stijlen, opmaakopties of lay‑outs toepassen) zonder dat de bronpresentaties worden beïnvloed.

Presentaties samenvoegen

Aspose.Slides biedt de addClone(Slide) methode die u in staat stelt dia’s te combineren terwijl de dia’s hun lay‑outs en stijlen behouden (standaardparameters).

Deze PHP‑code toont hoe u presentaties kunt samenvoegen:

  $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();
    }
  }

Presentaties samenvoegen met een Slide Master

Aspose.Slides biedt de addClone(Slide, MasterSlide, boolean) methode die u in staat stelt dia’s te combineren terwijl u een slide‑master‑sjabloon toepast. Op deze manier kunt u, indien nodig, de stijl voor de dia’s in de uitvoerpresentatie wijzigen.

Deze code demonstreert de beschreven bewerking:

  $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();
    }
  }

Als u wilt dat de dia’s in de uitvoerpresentatie een andere dia‑lay‑out hebben, gebruikt u in plaats daarvan de addClone(Slide, LayoutSlide) methode bij het samenvoegen.

Specifieke dia’s uit presentaties samenvoegen

Specifieke dia’s uit meerdere presentaties samenvoegen is handig voor het maken van aangepaste dia‑sets. Aspose.Slides for PHP via Java stelt u in staat alleen de dia’s te selecteren en te importeren die u nodig heeft. De API behoudt de opmaak, lay‑out en vormgeving van de originele dia’s.

De volgende PHP‑code maakt een nieuwe presentatie, voegt titeldia’s toe uit twee andere presentaties en slaat het resultaat op in een bestand:

function getTitleSlide(Presentation $presentation) {
    for ($i = 0; $i < java_values($presentation->getSlides()->size()); $i++) {
        $slide = $presentation->getSlides()->get_Item($i);
        if (java_values($slide->getLayoutSlide()->getLayoutType()) === SlideLayoutType::Title) {
            return $slide;
        }
    }
    return null;
}
$presentation = new Presentation();
$presentation1 = new Presentation($folderPath . "presentation1.pptx");
$presentation2 = new Presentation($folderPath . "presentation2.pptx");
try {
    $presentation->getSlides()->removeAt(0);
    
    $slide1 = getTitleSlide($presentation1);

    if ($slide1 != null)
        $presentation->getSlides()->addClone($slide1);

    $slide2 = getTitleSlide($presentation2);

    if ($slide2 != null)
        $presentation->getSlides()->addClone($slide2);

    $presentation->save($folderPath . "combined.pptx", SaveFormat::Pptx);
} finally {
    $presentation2->dispose();
    $presentation1->dispose();
    $presentation->dispose();
}

Presentaties samenvoegen met een Slide Layout

Deze PHP‑code toont hoe u dia’s uit presentaties combineert terwijl u uw favoriete dia‑lay‑out toepast om één uitvoerpresentatie te krijgen:

  $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();
    }
  }

Presentaties samenvoegen met verschillende diaformaten

Om 2 presentaties met verschillende diaformaten samen te voegen, moet u één van de presentaties verkleinen of vergroten zodat het formaat overeenkomt met dat van de andere presentatie.

Deze voorbeeldcode demonstreert de beschreven bewerking:

  $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();
    }
  }

Dia’s samenvoegen met een presentatiesectie

Deze PHP‑code toont hoe u een specifieke dia kunt samenvoegen met een sectie in een presentatie:

  $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();
    }
  }

De dia wordt aan het einde van de sectie toegevoegd.

Zie ook

Aspose biedt een FREE Online Collage Maker. Met deze online service kunt u JPG to JPG of PNG‑naar‑PNG‑afbeeldingen samenvoegen, photo grids maken en meer.

Bekijk de Aspose FREE Online Merger. Deze tool laat u PowerPoint‑presentaties in hetzelfde formaat (bijv. PPT naar PPT, PPTX naar PPTX) of over verschillende formaten heen (bijv. PPT naar PPTX, PPTX naar ODP) samenvoegen.

Aspose FREE Online Merger

Veelgestelde vragen

Zijn er beperkingen op het aantal dia’s bij het samenvoegen van presentaties?

Geen strikte limieten. Aspose.Slides kan grote bestanden aan, maar de prestaties hangen af van de bestandsgrootte en de systeembronnen. Voor zeer grote presentaties wordt aangeraden een 64‑bit JVM te gebruiken en voldoende heap‑geheugen toe te wijzen.

Kan ik presentaties samenvoegen met ingesloten video of audio?

Ja, Aspose.Slides behoudt multimedia‑inhoud die in dia’s is ingesloten, maar de uiteindelijke presentatie kan daardoor aanzienlijk groter worden.

Worden lettertypen behouden bij het samenvoegen van presentaties?

Ja. Lettertypen die in de bron‑presentaties worden gebruikt, blijven behouden in het uitvoerbestand, op voorwaarde dat ze op het systeem zijn geïnstalleerd of embedded.