Vytvořte a aplikujte WordArt efekty v Javě
Přehled
Efekty WordArt vám umožňují přidávat vizuálně atraktivní, stylizovaný text do vašich prezentací PowerPoint. S Aspose.Slides mohou vývojáři programově vytvářet, přizpůsobovat a spravovat WordArt stejně jako v Microsoft PowerPoint – aniž by bylo potřeba mít nainstalovaný Office. Tento článek poskytuje přehled práce s WordArt, včetně toho, jak aplikovat textové transformace, výplně, obrysy, stíny a další možnosti formátování, aby byl obsah vaší prezentace výražnější a poutavější. WordArt vám umožňuje zacházet s textem jako s grafickým objektem. Skládá se z efektů nebo speciálních úprav aplikovaných na text, aby byl atraktivnější nebo výraznější.
Vytvoření jednoduché šablony WordArt a její použití na text
Použití Aspose.Slides
Nejprve vytvoříme jednoduchý text pomocí tohoto Java kódu:
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
IAutoShape autoShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 400, 200);
ITextFrame textFrame = autoShape.getTextFrame();
Portion portion = (Portion)textFrame.getParagraphs().get_Item(0).getPortions().get_Item(0);
portion.setText("Aspose.Slides");
} finally {
if (pres != null) pres.dispose();
}
Nyní nastavíme výšku fontu textu na větší hodnotu, aby byl efekt viditelnější, pomocí tohoto kódu:
FontData fontData = new FontData("Arial Black");
portion.getPortionFormat().setLatinFont(fontData);
portion.getPortionFormat().setFontHeight(36);
Použití Microsoft PowerPoint
Přejděte do nabídky efektů WordArt v Microsoft PowerPoint:

V pravém menu můžete vybrat předdefinovaný efekt WordArt. V levém menu můžete specifikovat nastavení nového WordArt.
Toto jsou některé z dostupných parametrů nebo možností:

Použití Aspose.Slides
Zde použijeme barvu vzoru SmallGrid na text a přidáme černý ohraničení textu o šířce 1 pomocí tohoto kódu:
portion.getPortionFormat().getFillFormat().setFillType(FillType.Pattern);
portion.getPortionFormat().getFillFormat().getPatternFormat().getForeColor().setColor(Color.ORANGE);
portion.getPortionFormat().getFillFormat().getPatternFormat().getBackColor().setColor(Color.WHITE);
portion.getPortionFormat().getFillFormat().getPatternFormat().setPatternStyle(PatternStyle.SmallGrid);
portion.getPortionFormat().getLineFormat().getFillFormat().setFillType(FillType.Solid);
portion.getPortionFormat().getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
Výsledný text:

Použití dalších efektů WordArt
Použití Microsoft PowerPoint
V rozhraní programu můžete tyto efekty aplikovat na text, textový blok, tvar nebo podobný prvek:

Například efekty Stín, Odraz a Záření lze aplikovat na text; efekty 3D Formát a 3D Rotace lze aplikovat na textový blok; vlastnost Měkké hrany lze aplikovat na objekt tvaru (stále má efekt, když není nastavena vlastnost 3D Formát).
Aplikace stínových efektů
Zde zamýšlíme nastavit vlastnosti vztahující se pouze na text. Stínový efekt na text aplikujeme pomocí tohoto Java kódu:
portion.getPortionFormat().getEffectFormat().enableOuterShadowEffect();
portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().getShadowColor().setColor(Color.BLACK);
portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setScaleHorizontal(100);
portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setScaleVertical(65);
portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setBlurRadius(4.73);
portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setDirection(230);
portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setDistance(2);
portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setSkewHorizontal(30);
portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().setSkewVertical(0);
portion.getPortionFormat().getEffectFormat().getOuterShadowEffect().getShadowColor().getColorTransform().add(ColorTransformOperation.SetAlpha, 0.32f);
API Aspose.Slides podporuje tři typy stínů: OuterShadow, InnerShadow a PresetShadow.
S PresetShadow můžete na text aplikovat stín (použitím předdefinovaných hodnot).
Použití Microsoft PowerPoint
V PowerPointu můžete použít jeden typ stínu. Zde je příklad:

Použití Aspose.Slides
Aspose.Slides ve skutečnosti umožňuje aplikovat dva typy stínů najednou: InnerShadow a PresetShadow.
Poznámky:
- Když jsou použity OuterShadow a PresetShadow společně, aplikuje se pouze efekt OuterShadow.
- Pokud jsou OuterShadow a InnerShadow použity současně, výsledný nebo aplikovaný efekt závisí na verzi PowerPointu. Například v PowerPointu 2013 se efekt zdvojnásobí. V PowerPointu 2007 se aplikuje efekt OuterShadow.
Aplikace zobrazení na texty
Přidáme zobrazení k textu pomocí tohoto ukázkového kódu v Javě:
portion.getPortionFormat().getEffectFormat().enableReflectionEffect();
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setBlurRadius(0.5);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setDistance(4.72);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setStartPosAlpha(0f);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setEndPosAlpha(60f);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setDirection(90);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setScaleHorizontal(100);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setScaleVertical(-100);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setStartReflectionOpacity(60f);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setEndReflectionOpacity(0.9f);
portion.getPortionFormat().getEffectFormat().getReflectionEffect().setRectangleAlign(RectangleAlignment.BottomLeft);
Aplikace efektu záře na texty
Použijeme efekt záře na text, aby vynikl nebo se leskl, pomocí tohoto kódu:
portion.getPortionFormat().getEffectFormat().enableGlowEffect();
portion.getPortionFormat().getEffectFormat().getGlowEffect().getColor().setR((byte)255);
portion.getPortionFormat().getEffectFormat().getGlowEffect().getColor().getColorTransform().add(ColorTransformOperation.SetAlpha, 0.54f);
portion.getPortionFormat().getEffectFormat().getGlowEffect().setRadius(7);
Výsledek operace:

Použití transformací ve WordArt
Použijeme vlastnost Transform (obsaženou v celém bloku textu) pomocí tohoto kódu:
textFrame.getTextFrameFormat().setTransform(TextShapeType.ArchUpPour);
Výsledek:

Použití PowerPoint
Pro přístup k předdefinovaným typům transformací přejděte: Formát -> TextEffect -> Transform
Použití Aspose.Slides
Pro výběr typu transformace použijte výčet TextShapeType.
Aplikace 3D efektů na texty a tvary
Nastavíme 3D efekt na textový tvar pomocí tohoto ukázkového kódu:
autoShape.getThreeDFormat().getBevelBottom().setBevelType(BevelPresetType.Circle);
autoShape.getThreeDFormat().getBevelBottom().setHeight(10.5);
autoShape.getThreeDFormat().getBevelBottom().setWidth(10.5);
autoShape.getThreeDFormat().getBevelTop().setBevelType(BevelPresetType.Circle);
autoShape.getThreeDFormat().getBevelTop().setHeight(12.5);
autoShape.getThreeDFormat().getBevelTop().setWidth(11);
autoShape.getThreeDFormat().getExtrusionColor().setColor(Color.ORANGE);
autoShape.getThreeDFormat().setExtrusionHeight(6);
autoShape.getThreeDFormat().getContourColor().setColor(Color.RED);
autoShape.getThreeDFormat().setContourWidth(1.5);
autoShape.getThreeDFormat().setDepth(3);
autoShape.getThreeDFormat().setMaterial(MaterialPresetType.Plastic);
autoShape.getThreeDFormat().getLightRig().setDirection(LightingDirection.Top);
autoShape.getThreeDFormat().getLightRig().setLightType(LightRigPresetType.Balanced);
autoShape.getThreeDFormat().getLightRig().setRotation(0, 0, 40);
autoShape.getThreeDFormat().getCamera().setCameraType(CameraPresetType.PerspectiveContrastingRightFacing);
Výsledný text a jeho tvar:

Aplikujeme 3D efekt na text pomocí tohoto Java kódu:
textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setBevelType(BevelPresetType.Circle);
textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setHeight(3.5);
textFrame.getTextFrameFormat().getThreeDFormat().getBevelBottom().setWidth(3.5);
textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setBevelType(BevelPresetType.Circle);
textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setHeight(4);
textFrame.getTextFrameFormat().getThreeDFormat().getBevelTop().setWidth(4);
textFrame.getTextFrameFormat().getThreeDFormat().getExtrusionColor().setColor(Color.ORANGE);
textFrame.getTextFrameFormat().getThreeDFormat().setExtrusionHeight(6);
textFrame.getTextFrameFormat().getThreeDFormat().getContourColor().setColor(Color.RED);
textFrame.getTextFrameFormat().getThreeDFormat().setContourWidth(1.5);
textFrame.getTextFrameFormat().getThreeDFormat().setDepth(3);
textFrame.getTextFrameFormat().getThreeDFormat().setMaterial(MaterialPresetType.Plastic);
textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setDirection(LightingDirection.Top);
textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setLightType(LightRigPresetType.Balanced);
textFrame.getTextFrameFormat().getThreeDFormat().getLightRig().setRotation(0, 0, 40);
textFrame.getTextFrameFormat().getThreeDFormat().getCamera().setCameraType(CameraPresetType.PerspectiveContrastingRightFacing);
Výsledek operace:

Použití 3D efektů na texty nebo jejich tvary a interakce mezi efekty jsou založeny na určitých pravidlech.
Zvažte scénu pro text a tvar, který text obsahuje. 3D efekt zahrnuje 3D reprezentaci objektu a scénu, na kterou je objekt umístěn.
- Když je scéna nastavena jak pro tvar, tak pro text, má scéna tvaru vyšší prioritu – scéna textu je ignorována.
- Když tvar nemá vlastní scénu, ale má 3D reprezentaci, použije se scéna textu.
- Jinak – pokud tvar původně nemá 3D efekt – je tvar plochý a 3D efekt se aplikuje jen na text.
Tyto popisy souvisejí s metodami ThreeDFormat.getLightRig() a ThreeDFormat.getCamera().
Použití vnějšího stínu na texty
Aspose.Slides pro Java poskytuje třídy IOuterShadow a IInnerShadow, které umožňují aplikovat stínové efekty na text obsažený v TextFrame. Proveďte následující kroky:
- Vytvořte instanci třídy Presentation.
- Získejte referenci na snímek pomocí jeho indexu.
- Přidejte k snímku AutoShape typu Obdélník.
- Získejte přístup k TextFrame spojenému s AutoShape.
- Nastavte vlastnost FillType AutoShape na NoFill.
- Vytvořte instanci třídy OuterShadow.
- Nastavte BlurRadius stínu.
- Nastavte Direction (směr) stínu.
- Nastavte Distance (vzdálenost) stínu.
- Nastavte RectanglelAlign na TopLeft.
- Nastavte PresetColor stínu na Black.
- Uložte prezentaci jako soubor PPTX file.
Tento ukázkový kód v Javě — implementace výše uvedených kroků — ukazuje, jak aplikovat vnější stínový efekt na text:
Presentation pres = new Presentation();
try {
// Získat referenci na snímek
ISlide sld = pres.getSlides().get_Item(0);
// Přidat AutoShape typu Obdélník
IAutoShape ashp = sld.getShapes().addAutoShape(ShapeType.Rectangle, 150, 75, 150, 50);
// Přidat TextFrame k obdélníku
ashp.addTextFrame("Aspose TextBox");
// Zakázat výplň tvaru pro případ, že chceme získat stín textu
ashp.getFillFormat().setFillType(FillType.NoFill);
// Přidat vnější stín a nastavit všechny potřebné parametry
ashp.getEffectFormat().enableOuterShadowEffect();
IOuterShadow shadow = ashp.getEffectFormat().getOuterShadowEffect();
shadow.setBlurRadius(4.0);
shadow.setDirection(45);
shadow.setDistance(3);
shadow.setRectangleAlign(RectangleAlignment.TopLeft);
shadow.getShadowColor().setPresetColor(PresetColor.Black);
//Uložit prezentaci na disk
pres.save("pres_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Použití vnitřního stínu na tvary
Proveďte následující kroky:
- Vytvořte instanci třídy Presentation.
- Získejte referenci na snímek.
- Přidejte AutoShape typu Obdélník.
- Povolte InnerShadowEffect.
- Nastavte všechny potřebné parametry.
- Nastavte ColorType na Scheme.
- Nastavte Scheme Color.
- Uložte prezentaci jako soubor PPTX file.
Tento ukázkový kód (na základě výše uvedených kroků) ukazuje, jak v Javě přidat spojku mezi dva tvary:
Presentation pres = new Presentation();
try {
// Získat referenci na snímek
ISlide slide = pres.getSlides().get_Item(0);
// Přidat AutoShape typu Obdélník
IAutoShape ashp = slide.getShapes().addAutoShape(ShapeType.Rectangle, 150, 75, 400, 300);
ashp.getFillFormat().setFillType(FillType.NoFill);
// Přidat TextFrame k obdélníku
ashp.addTextFrame("Aspose TextBox");
IPortion port = ashp.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0);
IPortionFormat pf = port.getPortionFormat();
pf.setFontHeight(50);
// Povolit InnerShadowEffect
IEffectFormat ef = pf.getEffectFormat();
ef.enableInnerShadowEffect();
// Nastavit všechny potřebné parametry
ef.getInnerShadowEffect().setBlurRadius(8.0);
ef.getInnerShadowEffect().setDirection(90.0F);
ef.getInnerShadowEffect().setDistance(6.0);
ef.getInnerShadowEffect().getShadowColor().setB((byte)189);
// Nastavit ColorType jako Scheme
ef.getInnerShadowEffect().getShadowColor().setColorType(ColorType.Scheme);
// Nastavit Scheme Color
ef.getInnerShadowEffect().getShadowColor().setSchemeColor(SchemeColor.Accent1);
// Uložit prezentaci
pres.save("WordArt_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Často kladené dotazy
Mohu použít efekty WordArt s různými písmy nebo skripty (např. arabština, čínština)?
Ano, Aspose.Slides podporuje Unicode a funguje se všemi hlavními písmy a skripty. Efekty WordArt, jako jsou stín, výplň a obrys, lze aplikovat bez ohledu na jazyk, i když dostupnost fontů a jejich vykreslování může záviset na systémových fontech.
Mohu aplikovat efekty WordArt na prvky master snímku?
Ano, můžete aplikovat efekty WordArt na tvary v master snímcích, včetně zástupců titulů, zápatí nebo textu na pozadí. Změny provedené v rozložení masteru se projeví ve všech přidružených snímcích.
Ovlivňují efekty WordArt velikost souboru prezentace?
Mírně. Efekty WordArt, jako jsou stíny, záře a gradientové výplně, mohou mírně zvětšit velikost souboru kvůli přidaným metadatům formátování, ale rozdíl je obvykle zanedbatelný.
Mohu si prohlédnout výsledek efektů WordArt bez uložení prezentace?
Ano, můžete vykreslit snímky obsahující WordArt do obrázků (např. PNG, JPEG) pomocí metody getImage z rozhraní IShape nebo ISlide. To vám umožní náhled výsledku v paměti nebo na obrazovce před uložením či exportem celé prezentace.