Efektivně sloučit prezentace v PHP

Přehled

Aspose.Slides umožňuje sloučit prezentace klonováním snímků z jedné prezentace do druhé. Tento článek vysvětluje, jak sloučit celé prezentace nebo vybrané snímky, použít hlavní snímek nebo konkrétní rozvržení během sloučení, pracovat s prezentacemi s různými velikostmi snímků a přidat sloučené snímky do sekce prezentace. Také se zabývá praktickými poznámkami souvisejícími se sloučeným obsahem, včetně poznámek k řečníkovi, komentářů, souborů chráněných heslem a používání vláken.

Sloučení prezentací

Když sloučíte jednu prezentaci s druhou, v podstatě kombinujete jejich snímky do jedné prezentace a získáte jeden soubor.

Co lze sloučit

S Aspose.Slides můžete sloučit

  • celé prezentace. Všechny snímky z prezentací skončí v jedné prezentaci
  • specifické snímky. Vybrané snímky skončí v jedné prezentaci
  • prezentace v jednom formátu (PPT na PPT, PPTX na PPTX atd.) a v různých formátech (PPT na PPTX, PPTX na ODP atd.) mezi sebou.

Možnosti sloučení

Můžete použít možnosti, které určují, zda

  • každý snímek ve výstupní prezentaci zachová jedinečný styl
  • konkrétní styl je použit pro všechny snímky ve výstupní prezentaci.

Pro sloučení prezentací poskytuje Aspose.Slides metody addClone (z třídy SlideCollection). Existuje několik implementací metod addClone, které definují parametry procesu sloučení prezentací. Každý objekt Presentation má kolekci slide, takže můžete zavolat metodu addClone z prezentace, do které chcete sloučit snímky.

Metoda addClone vrací objekt Slide, který je klonem zdrojového snímku. Snímky ve výstupní prezentaci jsou jednoduše kopií snímků ze zdroje. Proto můžete měnit výsledné snímky (například aplikovat styly, formátování nebo rozvržení) aniž byste se museli obávat, že by to ovlivnilo zdrojové prezentace.

Sloučení prezentací

Aspose.Slides poskytuje metodu addClone(Slide), která umožňuje kombinovat snímky, přičemž snímky zachovávají své rozvržení a styly (výchozí parametry).

Tento PHP kód ukazuje, jak sloučit prezentace:

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

Sloučení prezentací s hlavním snímkem

Aspose.Slides poskytuje metodu addClone(Slide, MasterSlide, boolean) , která umožňuje kombinovat snímky při použití šablony hlavního snímku prezentace. Tímto způsobem můžete v případě potřeby změnit styl snímků ve výstupní prezentaci.

Tento kód demonstruje popsanou operaci:

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

Pokud chcete, aby snímky ve výstupní prezentaci měly jiné rozvržení snímku, použijte při sloučení místo toho metodu addClone(Slide, LayoutSlide) .

Sloučení konkrétních snímků z prezentací

Sloučení konkrétních snímků z více prezentací je užitečné pro tvorbu vlastních sad snímků. Aspose.Slides pro PHP via Java vám umožňuje vybrat a importovat pouze snímky, které potřebujete. API zachovává formátování, rozvržení a design originálních snímků.

Následující PHP kód vytvoří novou prezentaci, přidá titulní snímky ze dvou ostatních prezentací a uloží výsledek do souboru:

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

Sloučení prezentací s rozvržením snímku

Tento PHP kód ukazuje, jak kombinovat snímky z prezentací při aplikaci požadovaného rozvržení snímku, aby vznikla jedna výstupní prezentace:

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

Sloučení prezentací s různými velikostmi snímků

Pro sloučení 2 prezentací s různými velikostmi snímků musíte upravit velikost jedné z prezentací, aby odpovídala velikosti druhé.

Tento ukázkový kód demonstruje popsanou operaci:

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

Sloučení snímků do sekce prezentace

Tento PHP kód ukazuje, jak sloučit konkrétní snímek do sekce v prezentaci:

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

Snímek je přidán na konec sekce.

Viz také

Aspose poskytuje ZDARMA Online Collage Maker. Pomocí této online služby můžete sloučit obrázky JPG na JPG nebo PNG na PNG, vytvořit foto mřížky a další.

Vyzkoušejte Aspose FREE Online Merger. Umožňuje sloučit PowerPoint prezentace ve stejném formátu (např. PPT na PPT, PPTX na PPTX) nebo napříč různými formáty (např. PPT na PPTX, PPTX na ODP).

Aspose FREE Online Merger

Často kladené otázky

Existují nějaká omezení počtu snímků při sloučení prezentací?

Žádná striktní omezení. Aspose.Slides zvládne velké soubory, ale výkon závisí na velikosti a systémových zdrojích. Pro velmi velké prezentace se doporučuje používat 64‑bitový JVM a přidělit dostatečnou haldu paměti.

Mohu sloučit prezentace s vloženým videem nebo zvukem?

Ano, Aspose.Slides zachovává multimediální obsah vložený do snímků, ale výsledná prezentace může být výrazně větší.

Budou písma při sloučení prezentací zachována?

Ano. Písma použité ve zdrojových prezentacích jsou zachována ve výstupním souboru, pokud jsou nainstalována v systému nebo vložená.