Introduzione
Aspose.Slides FOSS for Python is now available on PyPI: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx file interamente in Python, senza dipendenze da Microsoft Office o da alcun runtime proprietario.
La libreria è progettata per gli sviluppatori che hanno bisogno di generare o manipolare file di presentazione in modo programmatico: automatizzare le diapositive a partire dai dati, estrarre testo e metadati da file PPTX caricati, costruire pipeline di reporting basate su presentazioni, o incorporare la creazione di presentazioni nelle applicazioni web. Perché aspose-slides-foss è puro Python con solo lxml come dipendenza, si distribuisce in modo identico su Windows, macOS, Linux e container Docker.
Caratteristiche principali
- Supporto completo round‑trip per PPTX: Apri qualsiasi
.pptxfile, modifica il suo contenuto e salvalo nuovamente senza perdere parti XML sconosciute che la libreria non comprende ancora. - Gestione delle diapositive: Aggiungi, rimuovi e itera le diapositive usando
prs.slides; la presentazione inizia con una diapositiva vuota doposlides.Presentation(). - AutoForme, Tabelle e Connettori: Inserisci forme tramite
slide.shapes.add_auto_shape(), dati tabulari tramiteslide.shapes.add_table(), e connettori visivi tra forme tramiteslide.shapes.add_connector(). - Formattazione di testo avanzata: Formatta il testo a livello di carattere con
PortionFormat: dimensione del carattere, grassetto, corsivo, sottolineato e colore ARGB tramiteFillType.SOLIDeColor.from_argb(). - Tipi di riempimento: Applica
FillType.SOLID,GRADIENT,PATTERN, oPICTUREriempie qualsiasi forma. - Effetti visivi: Ombra esterna, bagliore, bordo morbido, sfocatura, riflessione e ombra interna tramite
shape.effect_format. - 3D formatting: Smussatura, fotocamera, impianto di luci, materiale e profondità di estrusione tramite
shape.three_d_format. - Note del relatore: Allega il testo delle note a ogni diapositiva tramite
notes_slide_manager.add_notes_slide(). - Commenti in thread: Aggiungi commenti con metadati dell’autore e posizione della diapositiva.
- Immagini incorporate: Incorpora da percorso file, byte o
io.BytesIOflusso. - Proprietà del documento: Leggi e scrivi proprietà core, app e personalizzate.
Iniziare
Installa da PyPI. Python 3.10 o successivo è richiesto; lxml viene installato automaticamente.
pip install aspose-slides-foss
Crea la tua prima presentazione con una forma e salvala:
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)
Usa sempre Presentation all’interno di un with blocco; ciò garantisce che tutte le risorse interne vengano rilasciate quando il blocco termina.
Esempio di formattazione del testo
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)
Limitazioni attuali
Le seguenti aree sollevano NotImplementedError in questa versione:
- Grafici, SmartArt e oggetti OLE
- Animazioni e transizioni delle diapositive
- Esporta in PDF, HTML, SVG o formati immagine
- Collegamenti ipertestuali, impostazioni di azione, macro VBA e firme digitali
Le parti XML sconosciute incontrate durante il caricamento vengono preservate alla lettera al salvataggio, così i file PPTX prodotti da altri strumenti possono essere riutilizzati in modo sicuro.