Dia's van presentaties klonen in PHP

Introductie

Klonen is het proces waarbij een exacte kopie of replica van iets wordt gemaakt. Aspose.Slides for PHP via Java maakt het ook mogelijk om een kopie of kloon van een willekeurige dia te maken en die gekloonde dia vervolgens in de huidige of een andere geopende presentatie in te voegen. Het proces van dia‑klonen creëert een nieuwe dia die door ontwikkelaars kan worden aangepast zonder de oorspronkelijke dia te wijzigen. Er zijn verschillende mogelijke manieren om een dia te klonen:

  • Kloon aan het einde binnen een presentatie.
  • Kloon op een andere positie binnen een presentatie.
  • Kloon aan het einde in een andere presentatie.
  • Kloon op een andere positie in een andere presentatie.
  • Kloon op een specifieke positie in een andere presentatie.

In Aspose.Slides for PHP via Java biedt (een verzameling Slide objecten) die door het Presentation object wordt blootgesteld, de methoden addClone en insertClone om de bovenstaande soorten dia‑klonen uit te voeren

Kloon een dia aan het einde van een presentatie

Als u een dia wilt klonen en deze vervolgens in hetzelfde presentatie‑bestand aan het einde van de bestaande dia’s wilt gebruiken, gebruik dan de addClone‑methode volgens de onderstaande stappen:

  1. Maak een exemplaar van de klasse Presentation aan.
  2. Haal het object SlideCollection op door te verwijzen naar de dia‑collectie die door het Presentation object wordt blootgesteld.
  3. Roep de addClone‑methode aan die door het SlideCollection object wordt blootgesteld en geef de te klonen dia door als parameter aan de addClone‑methode.
  4. Schrijf het gewijzigde presentatie‑bestand weg.

In het onderstaande voorbeeld hebben we een dia gekloond (die zich op de eerste positie – nulindex – van de presentatie bevond) naar het einde van de presentatie.

  # Maak een instantie van de Presentation‑klasse die een presentatiedossier representeert
  $pres = new Presentation("CloneWithinSamePresentationToEnd.pptx");
  try {
    # Kloon de gewenste dia naar het einde van de collectie dia's in dezelfde presentatie
    $slds = $pres->getSlides();
    $slds->addClone($pres->getSlides()->get_Item(0));
    # Schrijf de gewijzigde presentatie naar schijf
    $pres->save("Aspose_CloneWithinSamePresentationToEnd_out.pptx", SaveFormat::Pptx);
  } finally {
    $pres->dispose();
  }

Kloon een dia naar een andere positie binnen een presentatie

Als u een dia wilt klonen en deze vervolgens in hetzelfde presentatie‑bestand maar op een andere positie wilt gebruiken, gebruik dan de insertClone‑methode:

  1. Maak een exemplaar van de klasse Presentation aan.
  2. Haal het object SlideCollection op door te verwijzen naar de Slides collectie die door het Presentation object wordt blootgesteld.
  3. Roep de insertClone‑methode aan die door het SlideCollection object wordt blootgesteld en geef de te klonen dia samen met de index voor de nieuwe positie door als parameter aan de insertClone‑methode.
  4. Schrijf de gewijzigde presentatie weg als een PPTX‑bestand.

In het onderstaande voorbeeld hebben we een dia gekloond (die zich op nulindex – positie 1 – van de presentatie bevond) naar index 1 – positie 2 – van de presentatie.

  # Instantieer de Presentation‑klasse die een presentatiedossier representeert
  $pres = new Presentation("CloneWithInSamePresentation.pptx");
  try {
    # Kloon de gewenste dia naar het einde van de collectie dia's in dezelfde presentatie
    $slds = $pres->getSlides();
    # Kloon de gewenste dia naar de opgegeven index in dezelfde presentatie
    $slds->insertClone(2, $pres->getSlides()->get_Item(1));
    # Schrijf de gewijzigde presentatie naar schijf
    $pres->save("Aspose_CloneWithInSamePresentation_out.pptx", SaveFormat::Pptx);
  } finally {
    $pres->dispose();
  }

Kloon een dia aan het einde van een andere presentatie

Als u een dia uit een presentatie moet klonen en deze in een andere presentatie‑bestand aan het einde van de bestaande dia’s wilt gebruiken:

  1. Maak een exemplaar van de klasse Presentation aan die de presentatie bevat waarvan de dia wordt gekloond.
  2. Maak een exemplaar van de klasse Presentation aan die de bestemmingspresentatie bevat waaraan de dia zal worden toegevoegd.
  3. Haal het object SlideCollection op door te verwijzen naar de Slides collectie die door het Presentation‑object van de bestemmingspresentatie wordt blootgesteld.
  4. Roep de addClone‑methode aan die door het SlideCollection object wordt blootgesteld en geef de dia uit de bronpresentatie door als parameter aan de addClone‑methode.
  5. Schrijf het gewijzigde bestemmingspresentatie‑bestand weg.

In het onderstaande voorbeeld hebben we een dia gekloond (van de eerste index van de bronpresentatie) naar het einde van de bestemmingspresentatie.

  # Instantieer de Presentation‑klasse om het bron‑presentatiedossier te laden
  $srcPres = new Presentation("CloneAtEndOfAnother.pptx");
  try {
    # Instantieer de Presentation‑klasse voor de bestemmings‑PPTX (waar de dia gekloond wordt)
    $destPres = new Presentation();
    try {
      # Kloon de gewenste dia van de bronpresentatie naar het einde van de collectie dia's in de bestemmingspresentatie
      $slds = $destPres->getSlides();
      $slds->addClone($srcPres->getSlides()->get_Item(0));
      # Schrijf de bestemmingspresentatie naar schijf
      $destPres->save("Aspose2_out.pptx", SaveFormat::Pptx);
    } finally {
      $destPres->dispose();
    }
  } finally {
    $srcPres->dispose();
  }

Kloon een dia naar een andere positie in een andere presentatie

Als u een dia uit een presentatie moet klonen en deze in een andere presentatiedocument op een specifieke positie wilt gebruiken:

  1. Maak een exemplaar van de klasse Presentation aan die de bronpresentatie bevat waarvan de dia wordt gekloond.
  2. Maak een exemplaar van de klasse Presentation aan die de presentatie bevat waaraan de dia wordt toegevoegd.
  3. Haal de klasse SlideCollection op door te verwijzen naar de Slides‑collectie die door het Presentation‑object van de bestemmingspresentatie wordt blootgesteld.
  4. Roep de insertClone‑methode aan die door het SlideCollection object wordt blootgesteld en geef de dia uit de bronpresentatie samen met de gewenste positie door als parameter aan de insertClone‑methode.
  5. Schrijf het gewijzigde bestemmingspresentatie‑bestand weg.

In het onderstaande voorbeeld hebben we een dia gekloond (van nulindex van de bronpresentatie) naar index 1 (positie 2) van de bestemmingspresentatie.

  # Instantieer de Presentation‑klasse om het bron‑presentatiedossier te laden
  $srcPres = new Presentation("CloneAtEndOfAnother.pptx");
  try {
    # Instantieer de Presentation‑klasse voor de bestemmings‑PPTX (waar de dia gekloond wordt)
    $destPres = new Presentation();
    try {
      # Kloon de gewenste dia van de bronpresentatie naar het einde van de collectie dia's in de bestemmingspresentatie
      $slds = $destPres->getSlides();
      $slds->insertClone(2, $srcPres->getSlides()->get_Item(0));
      # Schrijf de bestemmingspresentatie naar schijf
      $destPres->save("Aspose2_out.pptx", SaveFormat::Pptx);
    } finally {
      $destPres->dispose();
    }
  } finally {
    $srcPres->dispose();
  }

Kloon een dia op een specifieke positie in een andere presentatie

Als u een dia met een masterslide uit één presentatie moet klonen en in een andere presentatie wilt gebruiken, moet u eerst de gewenste masterslide van de bronpresentatie naar de bestemmingspresentatie klonen. Daarna moet u die masterslide gebruiken om de dia met masterslide te klonen. De addClone(Slide, MasterSlide, boolean) verwacht een masterslide uit de bestemmingspresentatie in plaats van uit de bronpresentatie. Volg de onderstaande stappen om een dia met een master te klonen:

  1. Maak een exemplaar van de klasse Presentation aan die de bronpresentatie bevat waarvan de dia wordt gekloond.
  2. Maak een exemplaar van de klasse Presentation aan die de bestemmingspresentatie bevat waaraan de dia wordt gekloond.
  3. Toegang tot de te klonen dia samen met de masterslide.
  4. Instantiateer de klasse MasterSlideCollection door te verwijzen naar de Masters‑collectie die door het Presentation object van de bestemmingspresentatie wordt blootgesteld.
  5. Roep de addClone‑methode aan die door het MasterSlideCollection object wordt blootgesteld en geef de master uit de bron‑PPTX door als parameter aan de addClone‑methode.
  6. Instantiateer de klasse SlideCollection door een verwijzing naar de Slides‑collectie in te stellen die door het Presentation object van de bestemmingspresentatie wordt blootgesteld.
  7. Roep de addClone‑methode aan die door het SlideCollection object wordt blootgesteld en geef de te klonen dia uit de bronpresentatie en de masterslide door als parameter aan de addClone‑methode.
  8. Schrijf het gewijzigde bestemmingspresentatie‑bestand weg.

In het onderstaande voorbeeld hebben we een dia met een master gekloond (die zich op nulindex van de bronpresentatie bevond) naar het einde van de bestemmingspresentatie met gebruik van een master van de brondia.

  # Instantieer de Presentation‑klasse om het bron‑presentatiedossier te laden
  $srcPres = new Presentation("CloneToAnotherPresentationWithMaster.pptx");
  try {
    # Instantieer de Presentation‑klasse voor de bestemmingspresentatie (waar de dia gekloond wordt)
    $destPres = new Presentation();
    try {
      # Instantieer ISlide uit de collectie dia's in de bronpresentatie samen met
      # de masterslide
      $SourceSlide = $srcPres->getSlides()->get_Item(0);
      $SourceMaster = $SourceSlide->getLayoutSlide()->getMasterSlide();
      # Kloon de gewenste masterslide van de bronpresentatie naar de collectie masters in de
      # bestemmingspresentatie
      $masters = $destPres->getMasters();
      $DestMaster = $SourceSlide->getLayoutSlide()->getMasterSlide();
      # Kloon de gewenste masterslide van de bronpresentatie naar de collectie masters in de
      # bestemmingspresentatie
      $iSlide = $masters->addClone($SourceMaster);
      # Kloon de gewenste dia van de bronpresentatie met de gewenste master naar het einde van de
      # collectie dia's in de bestemmingspresentatie
      $slds = $destPres->getSlides();
      $slds->addClone($SourceSlide, $iSlide, true);
      # Sla de bestemmingspresentatie op naar schijf
      $destPres->save("CloneToAnotherPresentationWithMaster_out.pptx", SaveFormat::Pptx);
    } finally {
      $destPres->dispose();
    }
  } finally {
    $srcPres->dispose();
  }

Kloon een dia aan het einde van een opgegeven sectie

Als u een dia wilt klonen en deze vervolgens in hetzelfde presentatie‑bestand maar in een andere sectie wilt gebruiken, gebruik dan de addClone‑methode die door de klasse SlideCollection wordt blootgesteld. Aspose.Slides for PHP via Java maakt het mogelijk om een dia uit de eerste sectie te klonen en die gekloonde dia in de tweede sectie van dezelfde presentatie in te voegen.

De volgende code‑fragment laat zien hoe u een dia kunt klonen en de gekloonde dia in een opgegeven sectie kunt invoegen.

  $presentation = new Presentation();
  try {
    $presentation->getSlides()->get_Item(0)->getShapes()->addAutoShape(ShapeType::Rectangle, 200, 50, 300, 100);
    $presentation->getSections()->addSection("Section 1", $presentation->getSlides()->get_Item(0));
    $section2 = $presentation->getSections()->appendEmptySection("Section 2");
    $presentation->getSlides()->addClone($presentation->getSlides()->get_Item(0), $section2);
    # Sla de bestemmingspresentatie op naar schijf
    $presentation->save($dataDir . "CloneSlideIntoSpecifiedSection.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($presentation)) {
      $presentation->dispose();
    }
  }

FAQ

Worden notities voor de spreker en beoordelingscommentaren gekloond?

Ja. De notitiepagina en beoordelingscommentaren worden opgenomen in de kloon. Als u ze niet wilt, verwijder ze na het invoegen.

Hoe worden grafieken en hun gegevensbronnen behandeld?

Het grafiekobject, de opmaak en de ingesloten gegevens worden gekopieerd. Als de grafiek was gekoppeld aan een externe bron (bijv. een OLE‑ingesloten werkmap), blijft die koppeling behouden als een OLE‑object. Na het verplaatsen tussen bestanden, controleer de beschikbaarheid van de gegevens en het verversingsgedrag.

Kan ik de invoegpositie en secties voor de kloon bepalen?

Ja. U kunt de kloon invoegen op een specifieke dia‑index en deze plaatsen in een gekozen sectie. Als de doelsectie niet bestaat, maak deze dan eerst aan en verplaats de dia ernaartoe.