Maak en pas WordArt‑effecten toe in Python via Java

Overzicht

WordArt‑effecten stellen u in staat om visueel aantrekkelijke, gestileerde tekst toe te voegen aan uw PowerPoint‑presentaties. Met Aspose.Slides kunnen ontwikkelaars programmatiche WordArt aanmaken, aanpassen en beheren, net zoals in Microsoft PowerPoint — zonder dat Office geïnstalleerd hoeft te zijn. Dit artikel geeft een overzicht van het werken met WordArt, inclusief hoe u teksttransformaties, vullingsstijlen, contouren, schaduwen en andere opmaakopties toepast om de inhoud van uw presentatie expressiever en boeiender te maken. WordArt laat u tekst behandelen als een grafisch object. Het bestaat uit effecten of speciale aanpassingen die op tekst worden toegepast om deze aantrekkelijker of opvallender te maken.

Maak een eenvoudige WordArt‑sjabloon en pas deze toe op tekst

Met Aspose.Slides

Eerst maken we eenvoudige tekst met deze Python‑code:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, ShapeType

presentation = Presentation()
try:
    slide = presentation.getSlides().get_Item(0)
    auto_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 400, 200)
    text_frame = auto_shape.getTextFrame()

    portion = text_frame.getParagraphs().get_Item(0).getPortions().get_Item(0)
    portion.setText("Aspose.Slides")
finally:
    presentation.dispose()

Vervolgens vergroten we de lettergrootte om het effect beter zichtbaar te maken:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import FontData, Presentation, ShapeType

presentation = Presentation()
try:
    slide = presentation.getSlides().get_Item(0)
    auto_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 400, 200)
    text_frame = auto_shape.getTextFrame()
    portion = text_frame.getParagraphs().get_Item(0).getPortions().get_Item(0)
    portion.setText("Aspose.Slides")

    font_data = FontData("Arial Black")
    portion_format = portion.getPortionFormat()
    portion_format.setLatinFont(font_data)
    portion_format.setFontHeight(36)
finally:
    presentation.dispose()

Met Microsoft PowerPoint

Ga naar het WordArt‑effectenmenu in Microsoft PowerPoint:

WordArt effects menu in PowerPoint

Van het menu aan de rechterkant kunt u een vooraf gedefinieerd WordArt‑effect kiezen. Van het menu aan de linkerkant kunt u de instellingen voor nieuw WordArt specificeren.

Dit zijn enkele van de beschikbare parameters of opties:

WordArt formatting options

Met Aspose.Slides

Hier passen we de PatternStyle.SmallGrid patroonvulling toe op de tekst en voegen we een zwarte tekstrand toe met deze code:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import FillType, PatternStyle, Presentation, ShapeType
from java.awt import Color

presentation = Presentation()
try:
    slide = presentation.getSlides().get_Item(0)
    auto_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 400, 200)
    text_frame = auto_shape.getTextFrame()
    portion = text_frame.getParagraphs().get_Item(0).getPortions().get_Item(0)
    portion.setText("Aspose.Slides")

    portion_format = portion.getPortionFormat()
    portion_format.getFillFormat().setFillType(FillType.Pattern)
    pattern_format = portion_format.getFillFormat().getPatternFormat()
    pattern_format.getForeColor().setColor(Color.ORANGE)
    pattern_format.getBackColor().setColor(Color.WHITE)
    pattern_format.setPatternStyle(PatternStyle.SmallGrid)

    line_format = portion_format.getLineFormat()
    line_format.getFillFormat().setFillType(FillType.Solid)
    line_format.getFillFormat().getSolidFillColor().setColor(Color.BLACK)
finally:
    presentation.dispose()

De resulterende tekst:

Text with a pattern fill and black outline

Andere WordArt‑effecten toepassen

Met Microsoft PowerPoint

Via de interface van het programma kunt u deze effecten toepassen op tekst, een tekstblok, een vorm of een vergelijkbaar element:

Text and shape effects in PowerPoint

Bijvoorbeeld, schaduw-, reflectie‑ en gloed‑effecten kunnen op tekst worden toegepast; 3D‑opmaak‑ en 3D‑rotatie‑effecten kunnen op een tekstblok worden toegepast; het Soft Edges‑effect kan op een vorm worden toegepast (het blijft effect hebben wanneer er geen 3D‑opmaak‑effect is ingesteld).

Schaduw‑effecten toepassen

De volgende Python‑code past een schaduweffect alleen toe op tekst:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ColorTransformOperation, Presentation, ShapeType
from java.awt import Color

presentation = Presentation()
try:
    slide = presentation.getSlides().get_Item(0)
    auto_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 400, 200)
    text_frame = auto_shape.getTextFrame()
    portion = text_frame.getParagraphs().get_Item(0).getPortions().get_Item(0)
    portion.setText("Aspose.Slides")

    portion_format = portion.getPortionFormat()
    portion_format.getEffectFormat().enableOuterShadowEffect()
    outer_shadow = portion_format.getEffectFormat().getOuterShadowEffect()
    outer_shadow.getShadowColor().setColor(Color.BLACK)
    outer_shadow.setScaleHorizontal(100)
    outer_shadow.setScaleVertical(65)
    outer_shadow.setBlurRadius(4.73)
    outer_shadow.setDirection(230)
    outer_shadow.setDistance(2)
    outer_shadow.setSkewHorizontal(30)
    outer_shadow.setSkewVertical(0)
    outer_shadow.getShadowColor().getColorTransform().add(ColorTransformOperation.SetAlpha, 0.32)
finally:
    presentation.dispose()

De Aspose.Slides‑API ondersteunt drie soorten schaduwen: OuterShadow, InnerShadow, en PresetShadow.

Met PresetShadow kunt u een schaduw op tekst toepassen met vooraf ingestelde waarden.

Met Microsoft PowerPoint

In PowerPoint kunt u één type schaduw gebruiken. Hier is een voorbeeld:

Shadow settings in PowerPoint

Met Aspose.Slides

Aspose.Slides maakt het inderdaad mogelijk om twee soorten schaduwen tegelijk toe te passen: InnerShadow en PresetShadow.

Notes:

  • Wanneer OuterShadow en PresetShadow samen worden gebruikt, wordt alleen het [OuterShadow]‑effect toegepast.
  • Indien OuterShadow en InnerShadow gelijktijdig worden gebruikt, hangt het resulterende of toegepaste effect af van de PowerPoint‑versie. Bijvoorbeeld, in PowerPoint 2013 wordt het effect verdubbeld. Maar in PowerPoint 2007 wordt het [OuterShadow]‑effect toegepast.

Reflectie op tekst toepassen

We voegen een reflectie toe aan de tekst via dit code‑voorbeeld in Python via Java:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, RectangleAlignment, ShapeType

presentation = Presentation()
try:
    slide = presentation.getSlides().get_Item(0)
    auto_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 400, 200)
    text_frame = auto_shape.getTextFrame()
    portion = text_frame.getParagraphs().get_Item(0).getPortions().get_Item(0)
    portion.setText("Aspose.Slides")

    portion_format = portion.getPortionFormat()
    portion_format.getEffectFormat().enableReflectionEffect()
    reflection = portion_format.getEffectFormat().getReflectionEffect()
    reflection.setBlurRadius(0.5)
    reflection.setDistance(4.72)
    reflection.setStartPosAlpha(0)
    reflection.setEndPosAlpha(60)
    reflection.setDirection(90)
    reflection.setScaleHorizontal(100)
    reflection.setScaleVertical(-100)
    reflection.setStartReflectionOpacity(60)
    reflection.setEndReflectionOpacity(0.9)
    reflection.setRectangleAlign(RectangleAlignment.BottomLeft)
finally:
    presentation.dispose()

Een gloed‑effect op tekst toepassen

We passen het gloed‑effect toe op de tekst om deze te laten schitteren of op te laten vallen met deze code:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ColorTransformOperation, Presentation, ShapeType

presentation = Presentation()
try:
    slide = presentation.getSlides().get_Item(0)
    auto_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 400, 200)
    text_frame = auto_shape.getTextFrame()
    portion = text_frame.getParagraphs().get_Item(0).getPortions().get_Item(0)
    portion.setText("Aspose.Slides")

    portion_format = portion.getPortionFormat()
    portion_format.getEffectFormat().enableGlowEffect()
    glow = portion_format.getEffectFormat().getGlowEffect()
    glow.getColor().setR(jpype.JByte(-1))
    glow.getColor().getColorTransform().add(ColorTransformOperation.SetAlpha, 0.54)
    glow.setRadius(7)
finally:
    presentation.dispose()

Het resultaat van de bewerking:

Text with a glow effect

Transformaties in WordArt gebruiken

Gebruik TextFrameFormat.setTransform om het gehele tekstblok te transformeren:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, ShapeType, TextShapeType

presentation = Presentation()
try:
    slide = presentation.getSlides().get_Item(0)
    auto_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 400, 200)
    text_frame = auto_shape.getTextFrame()
    text_frame.setText("Aspose.Slides")

    text_frame.getTextFrameFormat().setTransform(TextShapeType.ArchUpPour)
finally:
    presentation.dispose()

Het resultaat:

Text with an arch transformation

Met PowerPoint

Om de vooraf gedefinieerde transformatietypen te openen, ga naar: Format -> TextEffect -> Transform

Met Aspose.Slides

Om een transformatietype te selecteren, gebruikt u de enumeratie TextShapeType.

3D‑effecten toepassen op tekst en vormen

We passen een 3D‑effect toe op een tekstvorm met deze voorbeeldcode:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import BevelPresetType, CameraPresetType, LightRigPresetType, LightingDirection, MaterialPresetType, Presentation, ShapeType
from java.awt import Color

presentation = Presentation()
try:
    slide = presentation.getSlides().get_Item(0)
    auto_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 400, 200)
    auto_shape.getTextFrame().setText("Aspose.Slides")

    three_d_format = auto_shape.getThreeDFormat()
    three_d_format.getBevelBottom().setBevelType(BevelPresetType.Circle)
    three_d_format.getBevelBottom().setHeight(10.5)
    three_d_format.getBevelBottom().setWidth(10.5)

    three_d_format.getBevelTop().setBevelType(BevelPresetType.Circle)
    three_d_format.getBevelTop().setHeight(12.5)
    three_d_format.getBevelTop().setWidth(11)

    three_d_format.getExtrusionColor().setColor(Color.ORANGE)
    three_d_format.setExtrusionHeight(6)

    three_d_format.getContourColor().setColor(Color.RED)
    three_d_format.setContourWidth(1.5)

    three_d_format.setDepth(3)

    three_d_format.setMaterial(MaterialPresetType.Plastic)

    three_d_format.getLightRig().setDirection(LightingDirection.Top)
    three_d_format.getLightRig().setLightType(LightRigPresetType.Balanced)
    three_d_format.getLightRig().setRotation(0, 0, 40)

    three_d_format.getCamera().setCameraType(CameraPresetType.PerspectiveContrastingRightFacing)
finally:
    presentation.dispose()

De resulterende tekst en bijbehorende vorm:

Text shape with 3D effects

We passen een 3D‑effect toe op de tekst met deze Python‑code:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import BevelPresetType, CameraPresetType, LightRigPresetType, LightingDirection, MaterialPresetType, Presentation, ShapeType
from java.awt import Color

presentation = Presentation()
try:
    slide = presentation.getSlides().get_Item(0)
    auto_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 400, 200)
    text_frame = auto_shape.getTextFrame()
    text_frame.setText("Aspose.Slides")

    three_d_format = text_frame.getTextFrameFormat().getThreeDFormat()
    three_d_format.getBevelBottom().setBevelType(BevelPresetType.Circle)
    three_d_format.getBevelBottom().setHeight(3.5)
    three_d_format.getBevelBottom().setWidth(3.5)

    three_d_format.getBevelTop().setBevelType(BevelPresetType.Circle)
    three_d_format.getBevelTop().setHeight(4)
    three_d_format.getBevelTop().setWidth(4)

    three_d_format.getExtrusionColor().setColor(Color.ORANGE)
    three_d_format.setExtrusionHeight(6)

    three_d_format.getContourColor().setColor(Color.RED)
    three_d_format.setContourWidth(1.5)

    three_d_format.setDepth(3)

    three_d_format.setMaterial(MaterialPresetType.Plastic)

    three_d_format.getLightRig().setDirection(LightingDirection.Top)
    three_d_format.getLightRig().setLightType(LightRigPresetType.Balanced)
    three_d_format.getLightRig().setRotation(0, 0, 40)

    three_d_format.getCamera().setCameraType(CameraPresetType.PerspectiveContrastingRightFacing)
finally:
    presentation.dispose()

Het resultaat van de bewerking:

Text with 3D effects

Buiten‑schaduw‑effecten toepassen op tekst

Aspose.Slides voor Python via Java biedt de klassen OuterShadow en InnerShadow waarmee u schaduweffecten kunt toepassen op tekst in een TextFrame. Volg deze stappen:

  1. Maak een instantie van de klasse [Presentation] aan.
  2. Verkrijg de referentie naar een dia met behulp van de index.
  3. Voeg een rechthoekige vorm toe aan de dia.
  4. Open het tekstframe dat aan de vorm is gekoppeld.
  5. Schakel de vulling van de vorm uit.
  6. Schakel het buiten‑schaduweffect in.
  7. Stel de onscherpte‑radius van de schaduw in.
  8. Stel de richting van de schaduw in.
  9. Stel de afstand van de schaduw in.
  10. Lijn de schaduw uit naar links‑boven.
  11. Stel de schaduwkleur in op zwart.
  12. Schrijf de presentatie weg als een PPTX‑bestand.

De voorbeeldcode in Python via Java — een implementatie van de bovenstaande stappen — laat zien hoe u het buiten‑schaduweffect op tekst toepast:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import FillType, Presentation, PresetColor, RectangleAlignment, SaveFormat, ShapeType

presentation = Presentation()
try:
    # Verkrijg referentie naar de dia
    slide = presentation.getSlides().get_Item(0)

    # Voeg een AutoShape van type Rechthoek toe
    auto_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 150, 75, 150, 50)

    # Voeg een TextFrame toe aan de rechthoek
    auto_shape.addTextFrame("Aspose TextBox")

    # Schakel de vulling van de vorm uit voor het geval we de schaduw van de tekst willen gebruiken
    auto_shape.getFillFormat().setFillType(FillType.NoFill)

    # Voeg een buitenste schaduw toe en stel alle benodigde parameters in
    auto_shape.getEffectFormat().enableOuterShadowEffect()
    shadow = auto_shape.getEffectFormat().getOuterShadowEffect()
    shadow.setBlurRadius(4.0)
    shadow.setDirection(45)
    shadow.setDistance(3)
    shadow.setRectangleAlign(RectangleAlignment.TopLeft)
    shadow.getShadowColor().setPresetColor(PresetColor.Black)

    # Sla de presentatie op naar de schijf
    presentation.save("pres_out.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

Binnen‑schaduw‑effect op vormen toepassen

Volg deze stappen:

  1. Maak een instantie van de klasse [Presentation] aan.
  2. Verkrijg een referentie naar de dia.
  3. Voeg een rechthoekige vorm toe.
  4. Schakel het binnen‑schaduweffect in.
  5. Stel alle benodigde parameters in.
  6. Stel het type schaduwkleur in om een themakleur te gebruiken.
  7. Stel de themakleur in.
  8. Schrijf de presentatie weg als een PPTX‑bestand.

De voorbeeldcode (gebaseerd op de bovenstaande stappen) laat zien hoe u het binnen‑schaduweffect toepast op de tekst in een vorm in Python via Java:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpase.startJVM()

from asposeslides.api import ColorType, FillType, Presentation, SaveFormat, SchemeColor, ShapeType

presentation = Presentation()
try:
    # Verkrijg referentie van de dia
    slide = presentation.getSlides().get_Item(0)

    # Voeg een AutoShape van type Rechthoek toe
    auto_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 150, 75, 400, 300)
    auto_shape.getFillFormat().setFillType(FillType.NoFill)

    # Voeg een TextFrame toe aan de rechthoek
    auto_shape.addTextFrame("Aspose TextBox")
    portion = auto_shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0)
    portion_format = portion.getPortionFormat()
    portion_format.setFontHeight(50)

    # Schakel InnerShadowEffect in
    effect_format = portion_format.getEffectFormat()
    effect_format.enableInnerShadowEffect()

    # Stel alle benodigde parameters in
    inner_shadow = effect_format.getInnerShadowEffect()
    inner_shadow.setBlurRadius(8.0)
    inner_shadow.setDirection(90.0)
    inner_shadow.setDistance(6.0)
    inner_shadow.getShadowColor().setB(jpype.JByte(-67))

    # Stel ColorType in als Scheme
    inner_shadow.getShadowColor().setColorType(ColorType.Scheme)

    # Stel Scheme-kleur in
    inner_shadow.getShadowColor().setSchemeColor(SchemeColor.Accent1)

    # Sla de presentatie op
    presentation.save("WordArt_out.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

FAQ

Kan ik WordArt‑effecten gebruiken met verschillende lettertypen of schriftsoorten (bijv. Arabisch, Chinees)?

Ja, Aspose.Slides ondersteunt Unicode en werkt met alle gangbare lettertypen en schriftsoorten. WordArt‑effecten zoals schaduw, vulling en contour kunnen ongeacht de taal worden toegepast, hoewel de beschikbaarheid van lettertypen en de weergave kunnen afhangen van de systeemlettertypen.

Kan ik WordArt‑effecten toepassen op elementen van de dia‑master?

Ja, u kunt WordArt‑effecten toepassen op vormen in master‑dia’s, inclusief titel‑plaatsaanduidingen, voetteksten of achtergrondtekst. Wijzigingen in de master‑indeling worden doorgevoerd in alle bijbehorende dia’s.

Beïnvloeden WordArt‑effecten de bestandsgrootte van de presentatie?

Enigszins. WordArt‑effecten zoals schaduwen, gloed en gradientvullingen kunnen de bestandsgrootte iets verhogen door extra opmaak‑metadata, maar het verschil is meestal verwaarloosbaar.

Kan ik het resultaat van WordArt‑effecten bekijken zonder de presentatie op te slaan?

Ja, u kunt dia’s met WordArt renderen naar afbeeldingen (bijv. PNG, JPEG) met behulp van Shape.getImage of Slide.getImage. Hiermee kunt u het resultaat in het geheugen of op het scherm bekijken voordat u de volledige presentatie opslaat of exporteert.