Toegang tot presentatiedia's in PHP

Overzicht

Dit artikel legt uit hoe u dia’s in een presentatie kunt benaderen en beheren met Aspose.Slides. Het laat zien hoe u dia’s kunt ophalen via hun nulgebaseerde index uit de dia‑collectie en hoe u een dia kunt benaderen aan de hand van zijn unieke ID met de getSlideById‑methode.

U leert ook hoe u de positie van een dia kunt wijzigen met de setSlideNumber‑methode en hoe u het startdia‑nummer voor een presentatie kunt definiëren met de setFirstSlideNumber‑methode. De voorbeelden tonen het laden van een presentatie, het ophalen van dia‑referenties, het bijwerken van de volgorde of nummering van dia’s en het opslaan van de aangepaste presentatie.

Dia benaderen via index

Alle dia’s in een presentatie zijn numeriek gerangschikt op basis van de positie, beginnend bij 0. De eerste dia is bereikbaar via index 0; de tweede dia via index 1; enzovoort.

De Presentation‑klasse, die een presentatiebestand vertegenwoordigt, biedt alle dia’s aan als een SlideCollection (een verzameling van Slide‑objecten). Deze PHP‑code laat zien hoe u een dia via zijn index kunt benaderen:

  # Maakt een Presentation-object aan dat een presentatiebestand vertegenwoordigt
  $pres = new Presentation("demo.pptx");
  try {
    # Benadert een dia via de dia-index
    $slide = $pres->getSlides()->get_Item(0);
  } finally {
    $pres->dispose();
  }

Dia benaderen via ID

Elke dia in een presentatie heeft een uniek ID. U kunt de getSlideById‑methode (beschikbaar via de Presentation‑klasse) gebruiken om dat ID te targeten. Deze PHP‑code toont hoe u een geldig dia‑ID opgeeft en die dia benadert via de getSlideById‑methode:

  # Maakt een Presentation-object aan dat een presentatiebestand vertegenwoordigt
  $pres = new Presentation("demo.pptx");
  try {
    # Haalt een dia-ID op
    $id = $pres->getSlides()->get_Item(0)->getSlideId();
    # Benadert de dia via zijn ID
    $slide = $pres->getSlideById($id);
  } finally {
    $pres->dispose();
  }

Dia‑positie wijzigen

Aspose.Slides laat u de positie van een dia wijzigen. U kunt bijvoorbeeld opgeven dat de eerste dia de tweede dia moet worden.

  1. Maak een instantie van de Presentation‑klasse.
  2. Haal de referentie van de dia (wiens positie u wilt wijzigen) op via zijn index.
  3. Stel een nieuwe positie in voor de dia via de setSlideNumber‑methode.
  4. Sla de aangepaste presentatie op.

Deze PHP‑code demonstreert een bewerking waarbij de dia op positie 1 wordt verplaatst naar positie 2:

  # Maakt een Presentation-object aan dat een presentatiebestand vertegenwoordigt
  $pres = new Presentation("Presentation.pptx");
  try {
    # Haalt de dia op waarvan de positie zal worden gewijzigd
    $sld = $pres->getSlides()->get_Item(0);
    # Stelt de nieuwe positie voor de dia in
    $sld->setSlideNumber(2);
    # Slaat de aangepaste presentatie op
    $pres->save("helloworld_Pos.pptx", SaveFormat::Pptx);
  } finally {
    $pres->dispose();
  }

De eerste dia werd de tweede; de tweede dia werd de eerste. Wanneer u de positie van een dia wijzigt, worden andere dia’s automatisch aangepast.

Dia‑nummer instellen

Met de setFirstSlideNumber‑methode (beschikbaar via de Presentation‑klasse) kunt u een nieuw nummer voor de eerste dia in een presentatie opgeven. Deze bewerking zorgt ervoor dat andere dia‑nummers opnieuw worden berekend.

  1. Maak een instantie van de Presentation‑klasse.
  2. Haal het dia‑nummer op.
  3. Stel het dia‑nummer in.
  4. Sla de aangepaste presentatie op.

Deze PHP‑code demonstreert een bewerking waarbij het eerste dia‑nummer wordt ingesteld op 10:

  # Maakt een Presentation-object aan dat een presentatiebestand vertegenwoordigt
  $pres = new Presentation("HelloWorld.pptx");
  try {
    # Haalt het dia-nummer op
    $firstSlideNumber = $pres->getFirstSlideNumber();
    # Stelt het dia-nummer in
    $pres->setFirstSlideNumber(10);
    # Slaat de aangepaste presentatie op
    $pres->save("Set_Slide_Number_out.pptx", SaveFormat::Pptx);
  } finally {
    $pres->dispose();
  }

Als u de eerste dia wilt overslaan, kunt u de nummering vanaf de tweede dia starten (en de nummering voor de eerste dia verbergen) op deze manier:

  $presentation = new Presentation();
  try {
    $layoutSlide = $presentation->getLayoutSlides()->getByType(SlideLayoutType::Blank);
    $presentation->getSlides()->addEmptySlide($layoutSlide);
    $presentation->getSlides()->addEmptySlide($layoutSlide);
    $presentation->getSlides()->addEmptySlide($layoutSlide);
    # Stelt het nummer in voor de eerste presentatiedia
    $presentation->setFirstSlideNumber(0);
    # Toont dia-nummers voor alle dia's
    $presentation->getHeaderFooterManager()->setAllSlideNumbersVisibility(true);
    # Verbergt het dia-nummer voor de eerste dia
    $presentation->getSlides()->get_Item(0)->getHeaderFooterManager()->setSlideNumberVisibility(false);
    # Slaat de aangepaste presentatie op
    $presentation->save("output.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($presentation)) {
      $presentation->dispose();
    }
  }

FAQ

Komt het dia‑nummer dat een gebruiker ziet overeen met de nulgebaseerde index van de collectie?

Het nummer dat op een dia wordt getoond kan beginnen met een willekeurige waarde (bijv. 10) en hoeft niet overeen te komen met de index; de relatie wordt bepaald door de instelling first slide number van de presentatie.

Hebben verborgen dia’s invloed op de indexering?

Ja. Een verborgen dia blijft in de collectie en wordt meegeteld bij het indexeren; “verborgen” heeft alleen betrekking op de weergave, niet op de positie in de collectie.

Verandert de index van een dia wanneer andere dia’s worden toegevoegd of verwijderd?

Ja. Indexen weerspiegelen altijd de huidige volgorde van de dia’s en worden opnieuw berekend bij invoegen, verwijderen en verplaatsen.