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:

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:

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:

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:

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:

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:

Note
U kunt de parameters voor schaduw, reflectie en gloed wijzigen. De eigenschappen van de effecten worden afzonderlijk ingesteld voor elk deel van de tekst.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:

Note
Zowel Microsoft PowerPoint als Aspose.Slides voor Python via Java bieden een aantal vooraf gedefinieerde transformatietypen.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:

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:

Note
De toepassing van 3D‑effecten op tekst of zijn vormen en de interacties tussen effecten zijn gebaseerd op bepaalde regels.
Beschouw een scène voor de tekst en de vorm die die tekst bevat. Het 3D‑effect bevat een weergave van een 3D‑object en de scène waarin het object geplaatst is.
- Wanneer de scène zowel voor de vorm als voor de tekst is ingesteld, heeft de scène van de vorm voorrang — de scène van de tekst wordt genegeerd.
- Wanneer de vorm geen eigen scène heeft maar wel een 3D‑representatie, wordt de tekst‑scène gebruikt.
- Anders — wanneer de vorm oorspronkelijk geen 3D‑effect heeft — is de vorm vlak en wordt het 3D‑effect alleen op de tekst toegepast.
Deze regels hebben betrekking op de methoden ThreeDFormat.getLightRig en ThreeDFormat.getCamera.
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:
- Maak een instantie van de klasse [Presentation] aan.
- Verkrijg de referentie naar een dia met behulp van de index.
- Voeg een rechthoekige vorm toe aan de dia.
- Open het tekstframe dat aan de vorm is gekoppeld.
- Schakel de vulling van de vorm uit.
- Schakel het buiten‑schaduweffect in.
- Stel de onscherpte‑radius van de schaduw in.
- Stel de richting van de schaduw in.
- Stel de afstand van de schaduw in.
- Lijn de schaduw uit naar links‑boven.
- Stel de schaduwkleur in op zwart.
- 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:
- Maak een instantie van de klasse [Presentation] aan.
- Verkrijg een referentie naar de dia.
- Voeg een rechthoekige vorm toe.
- Schakel het binnen‑schaduweffect in.
- Stel alle benodigde parameters in.
- Stel het type schaduwkleur in om een themakleur te gebruiken.
- Stel de themakleur in.
- 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.