Crea e Applica Effetti WordArt in Python
Panoramica
Gli effetti WordArt consentono di aggiungere testo stilizzato e visivamente accattivante alle presentazioni PowerPoint. Con Aspose.Slides, gli sviluppatori possono creare, personalizzare e gestire WordArt in modo programmatico proprio come in Microsoft PowerPoint, senza la necessità di avere Office installato. Questo articolo fornisce una panoramica sull’utilizzo di WordArt, includendo come applicare trasformazioni del testo, stili di riempimento, contorni, ombre e altre opzioni di formattazione per rendere il contenuto della presentazione più espressivo e coinvolgente. WordArt consente di trattare il testo come un oggetto grafico. È costituito da effetti o modifiche speciali applicate al testo per renderlo più attraente o evidente.
WordArt in Microsoft PowerPoint
Per utilizzare WordArt in Microsoft PowerPoint, è necessario selezionare uno dei modelli WordArt predefiniti. Un modello WordArt è un insieme di effetti che viene applicato a un testo o alla sua forma.
WordArt in Aspose.Slides
In Aspose.Slides for Python via .NET 20.10, abbiamo implementato il supporto per WordArt e apportato miglioramenti alla funzionalità nelle versioni successive di Aspose.Slides for Python via .NET.
Con Aspose.Slides for Python via .NET, è possibile creare facilmente il proprio modello WordArt (un effetto o una combinazione di effetti) in Python e applicarlo ai testi.
Creare un modello WordArt semplice e applicarlo a un testo
Utilizzare Aspose.Slides
Innanzitutto, creiamo un semplice testo utilizzando questo codice Python:
import aspose.slides as slides
with slides.Presentation() as pres:
slide = pres.slides[0]
autoShape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 200, 200, 400, 200)
textFrame = autoShape.text_frame
portion = textFrame.paragraphs[0].portions[0]
portion.text = "Aspose.Slides"
pres.save("wordart-1.pptx", slides.export.SaveFormat.PPTX)
Ora, impostiamo l’altezza del carattere del testo a un valore più grande per rendere l’effetto più evidente tramite questo codice:
fontData = slides.FontData("Arial Black")
portion.portion_format.latin_font = fontData
portion.portion_format.font_height = 36
Utilizzare Microsoft PowerPoint
Vai al menu degli effetti WordArt in Microsoft PowerPoint:

Dal menu a destra, è possibile scegliere un effetto WordArt predefinito. Dal menu a sinistra, è possibile specificare le impostazioni per un nuovo WordArt.
Questi sono alcuni dei parametri o opzioni disponibili:

Utilizzare Aspose.Slides
Qui, applichiamo il colore del motivo SmallGrid al testo e aggiungiamo un bordo testuale nero di larghezza 1 utilizzando questo codice:
portion.portion_format.fill_format.fill_type = slides.FillType.PATTERN
portion.portion_format.fill_format.pattern_format.fore_color.color = draw.Color.dark_orange
portion.portion_format.fill_format.pattern_format.back_color.color = draw.Color.white
portion.portion_format.fill_format.pattern_format.pattern_style = slides.PatternStyle.SMALL_GRID
portion.portion_format.line_format.fill_format.fill_type = slides.FillType.SOLID
portion.portion_format.line_format.fill_format.solid_fill_color.color = draw.Color.black
Il testo risultante:

Applicare altri effetti WordArt
Utilizzare Microsoft PowerPoint
Dall’interfaccia del programma, è possibile applicare questi effetti a un testo, un blocco di testo, una forma o a un elemento simile:

Ad esempio, gli effetti Ombra, Riflesso e Bagliore possono essere applicati a un testo; gli effetti Formato 3D e Rotazione 3D possono essere applicati a un blocco di testo; la proprietà Bordi morbidi può essere applicata a un oggetto Forma (ha comunque un effetto anche quando non è impostata alcuna proprietà Formato 3D).
Applicare effetti Ombra
Qui, intendiamo impostare le proprietà relative solo a un testo. Applichiamo l’effetto ombra a un testo usando questo codice in Python:
portion.portion_format.effect_format.enable_outer_shadow_effect()
portion.portion_format.effect_format.outer_shadow_effect.shadow_color.color = draw.Color.black
portion.portion_format.effect_format.outer_shadow_effect.scale_horizontal = 100
portion.portion_format.effect_format.outer_shadow_effect.scale_vertical = 65
portion.portion_format.effect_format.outer_shadow_effect.blur_radius = 4.73
portion.portion_format.effect_format.outer_shadow_effect.direction = 230
portion.portion_format.effect_format.outer_shadow_effect.distance = 2
portion.portion_format.effect_format.outer_shadow_effect.skew_horizontal = 30
portion.portion_format.effect_format.outer_shadow_effect.skew_vertical = 0
portion.portion_format.effect_format.outer_shadow_effect.shadow_color.color_transform.add(slides.ColorTransformOperation.SET_ALPHA, 0.32)
L’API Aspose.Slides supporta tre tipi di ombre: OuterShadow, InnerShadow e PresetShadow.
Con PresetShadow, è possibile applicare un’ombra a un testo (usando valori predefiniti).
Utilizzare Microsoft PowerPoint
In PowerPoint, è possibile utilizzare un tipo di ombra. Ecco un esempio:

Utilizzare Aspose.Slides
Aspose.Slides consente effettivamente di applicare due tipi di ombre simultaneamente: InnerShadow e PresetShadow.
Note:
- Quando OuterShadow e PresetShadow sono usati insieme, viene applicato solo l’effetto OuterShadow.
- Se OuterShadow e InnerShadow vengono usati simultaneamente, l’effetto risultante o applicato dipende dalla versione di PowerPoint. Ad esempio, in PowerPoint 2013 l’effetto viene raddoppiato. Ma in PowerPoint 2007 viene applicato l’effetto OuterShadow.
Applicare la visualizzazione ai testi
Aggiungiamo la visualizzazione al testo tramite questo esempio di codice in Python:
portion.portion_format.effect_format.enable_reflection_effect()
portion.portion_format.effect_format.reflection_effect.blur_radius = 0.5
portion.portion_format.effect_format.reflection_effect.distance = 4.72
portion.portion_format.effect_format.reflection_effect.start_pos_alpha = 0
portion.portion_format.effect_format.reflection_effect.end_pos_alpha = 60
portion.portion_format.effect_format.reflection_effect.direction = 90
portion.portion_format.effect_format.reflection_effect.scale_horizontal = 100
portion.portion_format.effect_format.reflection_effect.scale_vertical = -100
portion.portion_format.effect_format.reflection_effect.start_reflection_opacity = 60
portion.portion_format.effect_format.reflection_effect.end_reflection_opacity = 0.9
portion.portion_format.effect_format.reflection_effect.rectangle_align = slides.RectangleAlignment.BOTTOM_LEFT
Applicare effetto Bagliore ai testi
Applichiamo l’effetto bagliore al testo per farlo brillare o risaltare usando questo codice:
portion.portion_format.effect_format.enable_glow_effect()
portion.portion_format.effect_format.glow_effect.color.r = 255
portion.portion_format.effect_format.glow_effect.color.color_transform.add(slides.ColorTransformOperation.SET_ALPHA, 0.54)
portion.portion_format.effect_format.glow_effect.radius = 7
Il risultato dell’operazione:

Utilizzare le trasformazioni in WordArt
Utilizziamo la proprietà Transform (intrinseca a tutto il blocco di testo) con questo codice:
textFrame.text_frame_format.transform = slides.TextShapeType.ARCH_UP_POUR
Il risultato:

Utilizzare PowerPoint
Per accedere alle tipologie di trasformazione predefinite, navigare tramite: Formato -> EffettoTesto -> Trasforma
Utilizzare Aspose.Slides
Per selezionare una tipologia di trasformazione, utilizzare l’enumerazione TextShapeType.
Applicare effetti 3D a testi e forme
Impostiamo un effetto 3D a una forma testuale usando questo codice di esempio:
autoShape.three_d_format.bevel_bottom.bevel_type = slides.BevelPresetType.CIRCLE
autoShape.three_d_format.bevel_bottom.height = 10.5
autoShape.three_d_format.bevel_bottom.width = 10.5
autoShape.three_d_format.bevel_top.bevel_type = slides.BevelPresetType.CIRCLE
autoShape.three_d_format.bevel_top.height = 12.5
autoShape.three_d_format.bevel_top.width = 11
autoShape.three_d_format.extrusion_color.color = draw.Color.orange
autoShape.three_d_format.extrusion_height = 6
autoShape.three_d_format.contour_color.color = draw.Color.dark_red
autoShape.three_d_format.contour_width = 1.5
autoShape.three_d_format.depth = 3
autoShape.three_d_format.material = slides.MaterialPresetType.PLASTIC
autoShape.three_d_format.light_rig.direction = slides.LightingDirection.TOP
autoShape.three_d_format.light_rig.light_type = slides.LightRigPresetType.BALANCED
autoShape.three_d_format.light_rig.set_rotation(0, 0, 40)
autoShape.three_d_format.camera.camera_type = slides.CameraPresetType.PERSPECTIVE_CONTRASTING_RIGHT_FACING
Il testo risultante e la sua forma:

Applichiamo un effetto 3D al testo con questo codice Python:
textFrame.text_frame_format.three_d_format.bevel_bottom.bevel_type = slides.BevelPresetType.CIRCLE
textFrame.text_frame_format.three_d_format.bevel_bottom.height = 3.5
textFrame.text_frame_format.three_d_format.bevel_bottom.width = 3.5
textFrame.text_frame_format.three_d_format.bevel_top.bevel_type = slides.BevelPresetType.CIRCLE
textFrame.text_frame_format.three_d_format.bevel_top.height = 4
textFrame.text_frame_format.three_d_format.bevel_top.width = 4
textFrame.text_frame_format.three_d_format.extrusion_color.color = draw.Color.orange
textFrame.text_frame_format.three_d_format.extrusion_height= 6
textFrame.text_frame_format.three_d_format.contour_color.color = draw.Color.dark_red
textFrame.text_frame_format.three_d_format.contour_width = 1.5
textFrame.text_frame_format.three_d_format.depth= 3
textFrame.text_frame_format.three_d_format.material = slides.MaterialPresetType.PLASTIC
textFrame.text_frame_format.three_d_format.light_rig.direction = slides.LightingDirection.TOP
textFrame.text_frame_format.three_d_format.light_rig.light_type = slides.LightRigPresetType.BALANCED
textFrame.text_frame_format.three_d_format.light_rig.set_rotation(0, 0, 40)
textFrame.text_frame_format.three_d_format.camera.camera_type = slides.CameraPresetType.PERSPECTIVE_CONTRASTING_RIGHT_FACING
Il risultato dell’operazione:

L’applicazione di effetti 3D a testi o alle loro forme e le interazioni tra gli effetti si basano su determinate regole.
Considera una scena per un testo e la forma che contiene quel testo. L’effetto 3D contiene la rappresentazione dell’oggetto 3D e la scena su cui l’oggetto è stato posizionato.
- Quando la scena è impostata sia per la figura sia per il testo, la scena della figura ha la priorità più alta — la scena del testo viene ignorata.
- Quando la figura non ha una sua scena ma possiede una rappresentazione 3D, viene utilizzata la scena del testo.
- Altrimenti — quando la forma originariamente non ha alcun effetto 3D — la forma è piatta e l’effetto 3D viene applicato solo al testo.
Le descrizioni sono collegate alle proprietà ThreeDFormat.LightRig e ThreeDFormat.Camera.
Applicare effetti Ombra Esterna ai testi
Aspose.Slides for Python via .NET fornisce le classi IOuterShadow e IInnerShadow che consentono di applicare effetti ombra a un testo contenuto in TextFrame. Segui questi passaggi:
- Creare un’istanza della classe Presentation.
- Ottenere il riferimento di una diapositiva utilizzando il suo indice.
- Aggiungere un AutoShape di tipo Rettangolo alla diapositiva.
- Accedere al TextFrame associato all’AutoShape.
- Impostare il FillType dell’AutoShape su NoFill.
- Istantiare la classe OuterShadow
- Impostare il BlurRadius dell’ombra.
- Impostare la Direction dell’ombra
- Impostare la Distance dell’ombra.
- Impostare il RectanglelAlign su TopLeft.
- Impostare il PresetColor dell’ombra su Black.
- Salvare la presentazione come file PPTX.
Questo esempio di codice in Python—un’implementazione dei passaggi sopra—mostra come applicare l’effetto ombra esterna a un testo:
import aspose.slides as slides
import aspose.pydrawing as draw
with slides.Presentation() as pres:
# Ottieni il riferimento della diapositiva
sld = pres.slides[0]
# Aggiungi un AutoShape di tipo Rettangolo
ashp = sld.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 150, 75, 150, 50)
# Aggiungi TextFrame al Rettangolo
ashp.add_text_frame("Aspose TextBox")
# Disabilita il riempimento della forma nel caso si voglia ottenere l'ombra del testo
ashp.fill_format.fill_type = slides.FillType.NO_FILL
# Aggiungi ombra esterna e imposta tutti i parametri necessari
ashp.effect_format.enable_outer_shadow_effect()
shadow = ashp.effect_format.outer_shadow_effect
shadow.blur_radius = 4.0
shadow.direction = 45
shadow.distance = 3
shadow.rectangle_align = slides.RectangleAlignment.TOP_LEFT
shadow.shadow_color.preset_color = slides.PresetColor.BLACK
#Scrivi la presentazione su disco
pres.save("pres_out.pptx", slides.export.SaveFormat.PPTX)
Applicare effetto Ombra Interna alle forme
Segui questi passaggi:
- Creare un’istanza della classe Presentation.
- Ottenere un riferimento della diapositiva.
- Aggiungere un AutoShape di tipo Rettangolo.
- Abilitare InnerShadowEffect.
- Impostare tutti i parametri necessari.
- Impostare il ColorType su Scheme.
- Impostare il colore Scheme.
- Salvare la presentazione come file PPTX.
Questo esempio di codice (basato sui passaggi precedenti) mostra come aggiungere un connettore tra due forme in Python:
import aspose.slides as slides
import aspose.pydrawing as draw
with slides.Presentation() as presentation:
# Ottieni il riferimento di una diapositiva
slide = presentation.slides[0]
# Aggiungi un AutoShape di tipo Rettangolo
ashp = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 150, 75, 400, 300)
ashp.fill_format.fill_type = slides.FillType.NO_FILL
# Aggiungi TextFrame al Rettangolo
ashp.add_text_frame("Aspose TextBox")
port = ashp.text_frame.paragraphs[0].portions[0]
pf = port.portion_format
pf.font_height = 50
# Abilita inner_shadow_effect
ef = pf.effect_format
ef.enable_inner_shadow_effect()
# Imposta tutti i parametri necessari
ef.inner_shadow_effect.blur_radius = 8.0
ef.inner_shadow_effect.direction = 90.0
ef.inner_shadow_effect.distance = 6.0
ef.inner_shadow_effect.shadow_color.b = 189
# Imposta ColorType come Scheme
ef.inner_shadow_effect.shadow_color.color_type = slides.ColorType.SCHEME
# Imposta il colore Scheme
ef.inner_shadow_effect.shadow_color.scheme_color = slides.SchemeColor.ACCENT1
# Salva la presentazione
presentation.save("WordArt_out.pptx", slides.export.SaveFormat.PPTX)
FAQ
Posso usare gli effetti WordArt con diversi font o script (ad es., arabo, cinese)?
Sì, Aspose.Slides supporta Unicode e funziona con tutti i principali font e script. Gli effetti WordArt come ombra, riempimento e contorno possono essere applicati indipendentemente dalla lingua, sebbene la disponibilità dei font e il rendering possano dipendere dai font di sistema.
Posso applicare gli effetti WordArt agli elementi del master della diapositiva?
Sì, è possibile applicare gli effetti WordArt alle forme nei master delle diapositive, inclusi segnaposto titoli, piè di pagina o testo di sfondo. Le modifiche apportate al layout master verranno riflesse su tutte le diapositive associate.
Gli effetti WordArt influiscono sulla dimensione del file della presentazione?
Leggermente. Effetti come ombre, bagliori e riempimenti sfumati possono aumentare marginalmente la dimensione del file a causa dei metadati di formattazione aggiunti, ma la differenza è solitamente trascurabile.
Posso visualizzare in anteprima il risultato degli effetti WordArt senza salvare la presentazione?
Sì, è possibile renderizzare le diapositive contenenti WordArt in immagini (ad es., PNG, JPEG) utilizzando il metodo get_image dalle classi Shape o Slide. Questo consente di visualizzare in anteprima il risultato in memoria o sullo schermo prima di salvare o esportare l’intera presentazione.