Inleiding

Aspose.Slides FOSS for Python is nu beschikbaar op PyPI: een gratis, MIT-gelicentieerde bibliotheek voor het maken, lezen en bewerken van PowerPoint .pptx-bestanden volledig in Python, zonder afhankelijkheid van Microsoft Office of enige propriëtaire runtime.

De bibliotheek is ontworpen voor ontwikkelaars die programmatisch presentatiesbestanden moeten genereren of manipuleren: het automatiseren van dia‑sets vanuit gegevens, het extraheren van tekst en metadata uit geüploade PPTX‑bestanden, het bouwen van op presentaties gebaseerde rapportage‑pijplijnen, of het integreren van presentatie‑creatie in webapplicaties. Omdat aspose-slides-foss pure Python is met alleen lxml als afhankelijkheid, wordt het identiek ingezet op Windows, macOS, Linux en Docker‑containers.

Belangrijkste kenmerken

  • Volledige round‑trip PPTX‑ondersteuning: Open elk .pptx‑bestand, wijzig de inhoud en sla het opnieuw op zonder onbekende XML‑onderdelen te verliezen die de bibliotheek nog niet begrijpt.
  • Dia‑beheer: Voeg dia’s toe, verwijder ze en doorloop ze met behulp van prs.slides; de presentatie begint met één lege dia na slides.Presentation().
  • AutoShapes, tabellen en connectors: Voeg vormen in via slide.shapes.add_auto_shape(), tabelgegevens via slide.shapes.add_table() en visuele connectors tussen vormen via slide.shapes.add_connector().
  • Rich‑tekstopmaak: Formatteer tekst op teken‑niveau met PortionFormat: lettergrootte, vet, cursief, onderstrepen en ARGB‑kleur via FillType.SOLID en Color.from_argb().
  • Vultypen: Pas FillType.SOLID-, GRADIENT-, PATTERN- of PICTURE‑vullingen toe op elke vorm.
  • Visuele effecten: Buitenste schaduw, gloed, zachte rand, vervaging, reflectie en binnenste schaduw via shape.effect_format.
  • 3D‑opmaak: Afschuining, camera, lichtopstelling, materiaal en extrusiediepte via shape.three_d_format.
  • Sprekersnotities: Voeg notitietekst toe aan elke dia via notes_slide_manager.add_notes_slide().
  • Gegroepeerde opmerkingen: Voeg opmerkingen toe met auteursmetadata en dia‑positie.
  • Ingesloten afbeeldingen: Voeg in vanuit bestandspad, bytes of io.BytesIO‑stream.
  • Documenteigenschappen: Lees en schrijf kern‑, app‑ en aangepaste eigenschappen.

Aan de slag

Installeer vanaf PyPI. Python 3.10 of hoger is vereist; lxml wordt automatisch geïnstalleerd.

pip install aspose-slides-foss

Maak je eerste presentatie met een vorm en sla deze op:

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
from aspose.slides_foss import ShapeType

with slides.Presentation() as prs:
    slide = prs.slides[0]
    shape = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 400, 120)
    shape.add_text_frame("Hello from Aspose.Slides FOSS!")
    prs.save("hello.pptx", SaveFormat.PPTX)

Gebruik altijd Presentation binnen een with‑blok; dit zorgt ervoor dat alle interne bronnen worden vrijgegeven wanneer het blok wordt verlaten.

Voorbeeld van Tekstopmaak

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType, NullableBool, FillType
from aspose.slides_foss.drawing import Color
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    shape = prs.slides[0].shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 500, 150)
    tf = shape.add_text_frame("Bold heading in corporate blue")
    fmt = tf.paragraphs[0].portions[0].portion_format
    fmt.font_height = 28
    fmt.font_bold = NullableBool.TRUE
    fmt.fill_format.fill_type = FillType.SOLID
    fmt.fill_format.solid_fill_color.color = Color.from_argb(255, 0, 70, 127)
    prs.save("formatted.pptx", SaveFormat.PPTX)

Huidige beperkingen

De volgende gebieden veroorzaken NotImplementedError in deze release:

  • Grafieken, SmartArt en OLE-objecten
  • Animaties en diaovergangen
  • Exporteren naar PDF, HTML, SVG of afbeeldingsformaten
  • Hyperlinks, actiestellingen, VBA-macro’s en digitale handtekeningen

Onbekende XML-onderdelen die tijdens het laden worden aangetroffen, worden bij het opslaan letterlijk bewaard, zodat PPTX‑bestanden die door andere tools zijn geproduceerd veilig een round‑trip doorlopen.

Zie ook