Effektivt slå samman presentationer i PHP

Översikt

Aspose.Slides låter dig slå samman presentationer genom att klona bilder från en presentation till en annan. Denna artikel förklarar hur du slår samman hela presentationer eller utvalda bilder, använder en bildmaster eller en specifik layout under sammanslagningen, hanterar presentationer med olika bildstorlekar och lägger till sammanslagna bilder i ett presentationsavsnitt. Den täcker också praktiska anteckningar relaterade till sammanslaget innehåll, inklusive talarnoter, kommentarer, lösenordsskyddade källfiler och trådanvändning.

Sammanslagning av presentationer

När du slår samman en presentation med en annan kombinerar du i praktiken deras bilder i en enda presentation för att få en fil.

Vad som kan slås samman

Med Aspose.Slides kan du slå samman

  • hela presentationer. Alla bilder från presentationerna blir i en enda presentation
  • specifika bilder. Utvalda bilder blir i en enda presentation
  • presentationer i samma format (PPT till PPT, PPTX till PPTX osv.) och i olika format (PPT till PPTX, PPTX till ODP osv.) till varandra.

Sammanslagningsalternativ

Du kan tillämpa alternativ som avgör om

  • varje bild i den resulterande presentationen behåller en unik stil
  • en specifik stil används för alla bilder i den resulterande presentationen.

För att slå samman presentationer erbjuder Aspose.Slides addClone-metoder (från klassen SlideCollection). Det finns flera implementationer av addClone-metoderna som definierar parametrarna för presentationssammanslagningsprocessen. Varje Presentation‑objekt har en slide-samling, så du kan anropa en addClone-metod från den presentation du vill slå samman bilder till.

addClone‑metoden returnerar ett Slide‑objekt, som är en klon av källbilden. Bilderna i en resulterande presentation är helt enkelt en kopia av bilderna från källan. Därför kan du göra ändringar i de resulterande bilderna (t.ex. applicera stilar eller formateringsalternativ eller layouter) utan att oroa dig för att källpresentationerna påverkas.

Slå samman presentationer

Aspose.Slides tillhandahåller metoden addClone(Slide) som låter dig kombinera bilder samtidigt som bilderna behåller sina layouter och stilar (standardparametrar).

Detta PHP‑kodexempel visar hur du slår samman presentationer:

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

Slå samman presentationer med en bildmaster

Aspose.Slides erbjuder metoden addClone(Slide, MasterSlide, boolean) som låter dig kombinera bilder samtidigt som du tillämpar en bildmaster‑presentationmall. På så sätt kan du vid behov ändra stilen för bilderna i den resulterande presentationen.

Denna kod demonstrerar den beskrivna operationen:

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

Om du vill att bilderna i den resulterande presentationen ska ha en annan bildlayout, använd metoden addClone(Slide, LayoutSlide) istället vid sammanslagning.

Slå samman specifika bilder från presentationer

Att slå samman specifika bilder från flera presentationer är användbart för att skapa anpassade bildpaket. Aspose.Slides for PHP via Java låter dig välja och importera bara de bilder du behöver. API:n bevarar formatering, layout och design från de ursprungliga bilderna.

Följande PHP‑kod skapar en ny presentation, lägger till titelbilder från två andra presentationer och sparar resultatet till en fil:

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

Slå samman presentationer med en bildlayout

Detta PHP‑kodexempel visar hur du kombinerar bilder från presentationer samtidigt som du tillämpar din föredragna bildlayout för att få en enda utdata‑presentation:

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

Slå samman presentationer med olika bildstorlekar

För att slå samman 2 presentationer med olika bildstorlekar måste du ändra storleken på en av presentationerna så att dess storlek matchar den andra presentationens.

Detta kodexempel demonstrerar den beskrivna operationen:

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

Slå samman bilder till ett presentationsavsnitt

Detta PHP‑kodexempel visar hur du slår samman en specifik bild till ett avsnitt i en presentation:

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

Bilden läggs till i slutet av avsnittet.

Se även

Aspose erbjuder en GRATIS Online Collage Maker. Med den här onlinetjänsten kan du slå samman JPG till JPG eller PNG till PNG‑bilder, skapa fotogallerier, och mer.

Kolla in Aspose GRATIS Online Merger. Den låter dig slå samman PowerPoint‑presentationer i samma format (t.ex. PPT till PPT, PPTX till PPTX) eller över olika format (t.ex. PPT till PPTX, PPTX till ODP).

Aspose GRATIS Online Merger

Vanliga frågor

Finns det några begränsningar för antalet bilder när man slår samman presentationer?

Det finns inga strikta begränsningar. Aspose.Slides kan hantera stora filer, men prestandan beror på filens storlek och systemresurser. För mycket stora presentationer rekommenderas att använda en 64‑bits JVM och tilldela tillräckligt med heap‑minne.

Kan jag slå samman presentationer med inbäddad video eller ljud?

Ja, Aspose.Slides bevarar multimedia‑innehåll som är inbäddat i bilderna, men den slutliga presentationen kan bli avsevärt större.

Kommer teckensnitt att bevaras när man slår samman presentationer?

Ja. Teckensnitt som används i källpresentationerna bevaras i den resulterande filen, förutsatt att de är installerade på systemet eller inbäddade.