Hoe presentaties te laden in Python
Aspose.Slides FOSS for Python lets you open any .pptx bestand, inspecteer de inhoud, en sla het vervolgens op als PPTX of haal er gegevens uit. Deze gids behandelt het openen van een bestand, het itereren door dia’s, het lezen van vormtekst, en het round‑tripping van de opslaan.
Stapsgewijze handleiding
Stap 1: Installeer het pakket
pip install aspose-slides-fossStap 2: Open een bestaande presentatie
Geef het bestandspad door aan slides.Presentation(). Gebruik de contextmanager om opruimen te garanderen.
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation("input.pptx") as prs:
print(f"Slide count: {len(prs.slides)}")
prs.save("output.pptx", SaveFormat.PPTX)Onbekende XML-onderdelen in het bronbestand worden letterlijk bewaard: de bibliotheek verwijdert nooit inhoud die ze nog niet begrijpt.
Stap 3: Inspecteer dia’s
Itereer over alle dia’s en print hun index:
import aspose.slides_foss as slides
with slides.Presentation("deck.pptx") as prs:
for i, slide in enumerate(prs.slides):
shape_count = len(slide.shapes)
print(f"Slide {i}: {shape_count} shapes")Stap 4: Lees vormtekst
Itereer over vormen en lees tekst van vormen die een TextFrame:
import aspose.slides_foss as slides
with slides.Presentation("deck.pptx") as prs:
for slide in prs.slides:
for shape in slide.shapes:
if hasattr(shape, "text_frame") and shape.text_frame is not None:
text = shape.text_frame.text
if text.strip():
print(f" Shape text: {text!r}")Stap 5: Lees documenteigenschappen
Toegang tot kern‑documenteigenschappen vanuit prs.document_properties:
import aspose.slides_foss as slides
with slides.Presentation("deck.pptx") as prs:
props = prs.document_properties
print(f"Title: {props.title}")
print(f"Author: {props.author}")
print(f"Subject: {props.subject}")Stap 6: Round‑trip opslaan
Na het inspecteren of aanpassen van de presentatie, sla je deze weer op als PPTX:
prs.save("output.pptx", SaveFormat.PPTX)Opslaan naar een ander pad maakt een nieuw bestand aan. Opslaan naar hetzelfde pad overschrijft het origineel.
Veelvoorkomende problemen en oplossingen
FileNotFoundError
Controleer of het pad naar de .pptx bestand correct is ten opzichte van de werkmap. Gebruik pathlib.Path voor robuuste padconstructie:
from pathlib import Path
path = Path(__file__).parent / "assets" / "deck.pptx"
with slides.Presentation(str(path)) as prs:
...Exception: File format is not supported
De bibliotheek ondersteunt .pptx (Office Open XML) alleen. Legacy .ppt (binaire PowerPoint 97–2003) bestanden worden niet ondersteund.
Vormen hebben geen text_frame‑attribuut
Sommige vormen (Connectors, PictureFrames, GroupShapes) hebben geen text_frame. Bescherm met hasattr(shape, "text_frame") and shape.text_frame is not None voordat u tekst benadert.
Veelgestelde vragen
Behoudt het laden alle oorspronkelijke inhoud?
Ja. Onbekende XML‑onderdelen worden letterlijk behouden bij round‑trip opslaan. De bibliotheek zal geen XML‑inhoud verwijderen die ze nog niet begrijpt.
Kan ik een wachtwoord‑beveiligde PPTX laden?
Wachtwoord‑beveiligde (versleutelde) presentaties worden niet ondersteund in deze editie.
Kan ik ingesloten afbeeldingen extraheren?
Toegang tot de afbeeldingenverzameling: prs.images geeft de ImageCollection. Elke afbeelding heeft een content_type en een bytes eigenschap om de ruwe afbeeldingsgegevens te lezen.
Wordt laden vanuit een in‑memory‑stream ondersteund?
Laden direct vanaf io.BytesIO is niet beschikbaar in de huidige API. Schrijf de bytes eerst naar een tijdelijk bestand:
import tempfile, os
import aspose.slides_foss as slides
with tempfile.NamedTemporaryFile(suffix=".pptx", delete=False) as tmp:
tmp.write(pptx_bytes)
tmp_path = tmp.name
try:
with slides.Presentation(tmp_path) as prs:
print(f"Slides: {len(prs.slides)}")
finally:
os.unlink(tmp_path)