Přístup k snímkům prezentace v Pythonu
Přehled
Tento článek vysvětluje, jak pomocí Aspose.Slides přistupovat k snímkům v prezentaci a spravovat je. Ukazuje, jak načíst snímky podle jejich nulového indexu ze sbírky snímků a jak přistupovat k snímku podle jeho jedinečného ID pomocí metody getSlideById.
Také se naučíte, jak změnit pozici snímku pomocí metody setSlideNumber a jak definovat počáteční číslo snímku pro prezentaci pomocí metody setFirstSlideNumber. Příklady ukazují načtení prezentace, získání odkazů na snímky, aktualizaci pořadí nebo číslování snímků a uložení upravené prezentace.
Přístup k snímku podle indexu
Všechny snímky v prezentaci jsou uspořádány číselně podle pozice snímku počínaje 0. První snímek je přístupný přes index 0; druhý snímek je přístupný přes index 1; atd.
Třída Presentation představující soubor prezentace zpřístupňuje všechny snímky jako kolekci SlideCollection (kolekci objektů Slide). Tento Python kód ukazuje, jak přistupovat k snímku podle jeho indexu:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation
# Vytvořte objekt Presentation, který reprezentuje soubor prezentace.
presentation = Presentation("demo.pptx")
try:
# Přístup k snímku pomocí jeho indexu.
slide = presentation.getSlides().get_Item(0)
finally:
presentation.dispose()
Přístup k snímku podle ID
Každý snímek v prezentaci má přiřazené jedinečné ID. K cílení na toto ID můžete použít metodu getSlideById (poskytnutou třídou Presentation). Tento Python kód ukazuje, jak zadat platné ID snímku a přistoupit k tomuto snímku pomocí metody getSlideById:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation
# Vytvořte objekt Presentation, který představuje soubor prezentace.
presentation = Presentation("demo.pptx")
try:
# Získejte ID snímku.
slide_id = presentation.getSlides().get_Item(0).getSlideId()
# Přístup ke snímku přes jeho ID.
slide = presentation.getSlideById(slide_id)
finally:
presentation.dispose()
Změna pozice snímku
Aspose.Slides umožňuje změnit pozici snímku. Například můžete určit, že první snímek se má stát druhým snímkem.
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na snímek (kterého pozici chcete změnit) podle jeho indexu.
- Nastavte novou pozici snímku pomocí metody setSlideNumber.
- Uložte upravenou prezentaci.
Tento Python kód demonstruje operaci, při které je snímek na pozici 1 přesunut na pozici 2:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
# Vytvořte objekt Presentation, který představuje soubor prezentace.
presentation = Presentation("Presentation.pptx")
try:
# Získejte snímek, jehož pozice bude změněna.
slide = presentation.getSlides().get_Item(0)
# Nastavte novou pozici snímku.
slide.setSlideNumber(2)
# Uložte upravenou prezentaci.
presentation.save("helloworld_Pos.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
První snímek se stal druhým; druhý snímek se stal prvním. Když změníte pozici snímku, ostatní snímky jsou automaticky upraveny.
Nastavení čísla snímku
Pomocí metody setFirstSlideNumber (poskytnuté třídou Presentation) můžete nastavit nové číslo pro první snímek v prezentaci. Tato operace způsobí, že ostatní čísla snímků jsou přepočítána.
- Vytvořte instanci třídy Presentation.
- Získejte číslo snímku.
- Nastavte číslo snímku.
- Uložte upravenou prezentaci.
Tento Python kód ukazuje operaci, při které je číslo prvního snímku nastaveno na 10:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
# Vytvořte objekt Presentation, který představuje soubor prezentace.
presentation = Presentation("HelloWorld.pptx")
try:
# Získejte číslo snímku.
first_slide_number = presentation.getFirstSlideNumber()
# Nastavte číslo snímku.
presentation.setFirstSlideNumber(10)
# Uložte upravenou prezentaci.
presentation.save("Set_Slide_Number_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Pokud chcete přeskočit první snímek, můžete číslování začít od druhého snímku (a číslo prvního snímku skryt) takto:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SlideLayoutType
presentation = Presentation()
try:
layout_slide = presentation.getLayoutSlides().getByType(SlideLayoutType.Blank)
presentation.getSlides().addEmptySlide(layout_slide)
presentation.getSlides().addEmptySlide(layout_slide)
presentation.getSlides().addEmptySlide(layout_slide)
# Nastavte číslo pro první snímek prezentace.
presentation.setFirstSlideNumber(0)
# Zobrazte čísla snímků pro všechny snímky.
presentation.getHeaderFooterManager().setAllSlideNumbersVisibility(True)
# Skryjte číslo snímku pro první snímek.
presentation.getSlides().get_Item(0).getHeaderFooterManager().setSlideNumberVisibility(False)
# Uložte upravenou prezentaci.
presentation.save("output.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Často kladené otázky
Odpovídá číslo snímku, které uživatel vidí, nulovému indexu ve sbírce?
Číslo zobrazené na snímku může začínat libovolnou hodnotou (např. 10) a nemusí odpovídat indexu; vztah řídí nastavení první číslo snímku prezentace.
Ovlivňují skryté snímky indexování?
Ano. Skrytý snímek zůstává ve sbírce a je započítán do indexování; „skrytý“ se vztahuje na zobrazení, nikoli na jeho pozici ve sbírce.
Mění se index snímku, když jsou přidány nebo odebrány jiné snímky?
Ano. Indexy vždy odrážejí aktuální pořadí snímků a jsou přepočítány při vložení, odstranění a přesunu.