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:

todo:image_alt_text

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:

todo:image_alt_text

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:

todo:image_alt_text

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:

todo:image_alt_text

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:

todo:image_alt_text

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:

todo:image_alt_text

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:

todo:image_alt_text

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:

todo:image_alt_text

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:

todo:image_alt_text

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:

  1. Creare un’istanza della classe Presentation.
  2. Ottenere il riferimento di una diapositiva utilizzando il suo indice.
  3. Aggiungere un AutoShape di tipo Rettangolo alla diapositiva.
  4. Accedere al TextFrame associato all’AutoShape.
  5. Impostare il FillType dell’AutoShape su NoFill.
  6. Istantiare la classe OuterShadow
  7. Impostare il BlurRadius dell’ombra.
  8. Impostare la Direction dell’ombra
  9. Impostare la Distance dell’ombra.
  10. Impostare il RectanglelAlign su TopLeft.
  11. Impostare il PresetColor dell’ombra su Black.
  12. 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:

  1. Creare un’istanza della classe Presentation.
  2. Ottenere un riferimento della diapositiva.
  3. Aggiungere un AutoShape di tipo Rettangolo.
  4. Abilitare InnerShadowEffect.
  5. Impostare tutti i parametri necessari.
  6. Impostare il ColorType su Scheme.
  7. Impostare il colore Scheme.
  8. 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.