WordArt hatások létrehozása és alkalmazása Java-ban
Áttekintés
A WordArt effektusok lehetővé teszik, hogy vizuálisan vonzó, stilizált szöveget adjunk a PowerPoint‑prezentációkhoz. Az Aspose.Slides‑szel a fejlesztők programozottan hozhatnak létre, testre szabhatnak és kezelhetnek WordArt‑ot, akárcsak a Microsoft PowerPoint‑ban – anélkül, hogy az Office‑t telepíteni kellene. Ez a cikk áttekintést nyújt a WordArt használatáról, beleértve a szövegre vonatkozó átalakítások, kitöltési stílusok, körvonalak, árnyékok és egyéb formázási lehetőségek alkalmazását, hogy a prezentáció tartalma kifejezőbb és lebilincselőbb legyen. A WordArt lehetővé teszi, hogy a szöveget grafikus objektumként kezeljük. Effektek vagy speciális módosítások alkalmazásával a szöveget vonzóbbá vagy feltűnőbbé tehetjük.
Egyszerű WordArt sablon létrehozása és alkalmazása szövegre
Aspose.Slides használata
Először egy egyszerű szöveget hozunk létre ezzel a Java kóddal:
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();
}
Most a szöveg betűmagasságát nagyobb értékre állítjuk, hogy a hatás jobban látható legyen, ezzel a kóddal:
FontData fontData = new FontData("Arial Black");
portion.getPortionFormat().setLatinFont(fontData);
portion.getPortionFormat().setFontHeight(36);
Microsoft PowerPoint használata
Nyissa meg a WordArt effektus menüt a Microsoft PowerPointban:

A jobb oldali menüből választhat egy előre definiált WordArt effektust. A bal oldali menüből megadhatja egy új WordArt beállításait.
Ezek a rendelkezésre álló paraméterek vagy lehetőségek:

Aspose.Slides használata
Itt a SmallGrid minta színt alkalmazzuk a szövegre, és 1 képpontos fekete szövegkeretet adunk hozzá ezzel a kóddal:
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);
Az eredményül kapott szöveg:

Egyéb WordArt hatások alkalmazása
Microsoft PowerPoint használata
A program felületéről ezek a hatások alkalmazhatók szövegre, szövegtömbre, alakzatra vagy hasonló elemre:

Például az Árnyék, a Tükör és a Glow hatásokat szövegre, a 3D Formátum és 3D Forgatás hatásokat szövegtömbre, a Lágy Szélek tulajdonságot alakzatra (akár 3D Formátum tulajdonság nélkül) lehet alkalmazni.
Árnyék hatások alkalmazása
Itt csak a szövegre vonatkozó tulajdonságokat állítjuk be. A szövegre árnyékhatást alkalmazzuk ezzel a Java kóddal:
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);
Az Aspose.Slides API három típusú árnyékot támogat: OuterShadow, InnerShadow és PresetShadow.
A PresetShadow segítségével előre definiált értékekkel alkalmazhat árnyékot a szövegre.
Microsoft PowerPoint használata
A PowerPointban csak egy árnyéktípust használhat. Íme egy példa:

Aspose.Slides használata
Az Aspose.Slides valójában egyszerre két árnyéktípust engedélyez: InnerShadow és PresetShadow.
Megjegyzések:
- Ha az OuterShadow és a PresetShadow együtt van használva, csak az OuterShadow hatás kerül alkalmazásra.
- Ha az OuterShadow és az InnerShadow egyszerre van használva, a kapott vagy alkalmazott hatás a PowerPoint verziójától függ. Például PowerPoint 2013‑ban a hatás duplázódik, míg PowerPoint 2007‑ben az OuterShadow hatás kerül alkalmazásra.
Megjelenítés alkalmazása szövegekre
A szöveghez megjelenítést (display) adunk hozzá ezzel a Java kódrészlettel:
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);
Glow hatás alkalmazása szövegekre
A glow hatást a szövegre alkalmazzuk, hogy ragyogjon vagy kitűnjön, ezzel a kóddal:
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);
A művelet eredménye:

Transzformációk használata WordArt-ban
A Transform tulajdonságot (ami a teljes szövegtömbre vonatkozik) ezzel a kóddal használjuk:
textFrame.getTextFrameFormat().setTransform(TextShapeType.ArchUpPour);
Az eredmény:

PowerPoint használata
Az előre definiált transzformációs típusok eléréséhez lépjen a következőre: Format -> TextEffect -> Transform
Aspose.Slides használata
A transzformációs típus kiválasztásához használja a TextShapeType enum‑ot.
3D hatások alkalmazása szövegekre és alakzatokra
Ezzel a mintakóddal 3D hatást állítunk be egy szöveg alakzatra:
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);
Az eredményül kapott szöveg és alakzata:

Ezzel a Java kóddal 3D hatást alkalmazunk a szövegre:
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);
A művelet eredménye:

A 3D hatások szövegekre vagy alakzataikra való alkalmazása, valamint a hatások közötti kölcsönhatások bizonyos szabályokon alapulnak.
Tekintsen egy jelenetet a szöveghez és a szöveget tartalmazó alakzatra. A 3D hatás magában foglalja a 3D objektum ábrázolását és a jelenetet, amelyre az objektum kerül.
- Ha a jelenet mind a alakzatra, mind a szövegre be van állítva, akkor az alakzat jelenete kapja a magasabb prioritást – a szöveg jelenete figyelmen kívül marad.
- Ha az alakzatnak nincs saját jelenete, de van 3D ábrázolása, a szöveg jelenete lesz használva.
- Egyébként – ha az alakzat eredetileg nincs 3D hatással – az alakzat lapos, és a 3D hatás csak a szövegre kerül alkalmazásra.
Ezek a leírások a ThreeDFormat.getLightRig() és a ThreeDFormat.getCamera() metódusokhoz kapcsolódnak.
Külső árnyék hatások alkalmazása szövegekre
Az Aspose.Slides for Java a IOuterShadow és a IInnerShadow osztályokat kínálja, amelyek lehetővé teszik, hogy árnyékhatásokat alkalmazzunk a TextFrame által tartott szövegre. Kövesse ezeket a lépéseket:
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze meg a dia referenciáját az indexe alapján.
- Adjon egy Rectangle típusú AutoShape‑et a diára.
- Szerezze meg az AutoShape‑hez kapcsolódó TextFrame‑et.
- Állítsa az AutoShape FillType‑ját NoFill‑re.
- Hozzon létre egy OuterShadow példányt.
- Állítsa be az árnyék BlurRadius‑át.
- Állítsa be az árnyék Direction‑ját.
- Állítsa be az árnyék Distance‑ét.
- Állítsa be a RectanglelAlign‑t TopLeft‑ra.
- Állítsa be az árnyék PresetColor‑át Black‑re.
- Mentse a prezentációt PPTX fájlként.
Ez a Java mintakód – a fenti lépések megvalósítása – bemutatja, hogyan alkalmazhatja a külső árnyék hatást szövegre:
Presentation pres = new Presentation();
try {
// Szerezze meg a dia hivatkozását
ISlide sld = pres.getSlides().get_Item(0);
// Hozzon létre Rectangle típusú AutoShape-et
IAutoShape ashp = sld.getShapes().addAutoShape(ShapeType.Rectangle, 150, 75, 150, 50);
// Szövegkeretet (TextFrame) ad a Rectangle-hez
ashp.addTextFrame("Aspose TextBox");
// Tiltsa le az alakzat kitöltését, ha a szöveg árnyékát szeretné megkapni
ashp.getFillFormat().setFillType(FillType.NoFill);
// Külső árnyék hozzáadása és az összes szükséges paraméter beállítása
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);
// Mentse a prezentációt lemezre
pres.save("pres_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Belső árnyék hatás alkalmazása alakzatokra
Kövesse ezeket a lépéseket:
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze meg a dia referenciáját.
- Adjon egy Rectangle típusú AutoShape‑et.
- Engedélyezze az InnerShadowEffect‑et.
- Állítsa be az összes szükséges paramétert.
- Állítsa be a ColorType‑ot Scheme‑re.
- Állítsa be a Scheme Color‑t.
- Mentse a prezentációt PPTX fájlként.
Ez a mintakód (a fenti lépések alapján) megmutatja, hogyan adhat hozzá egy kapcsolatot két alakzat között Java‑ban:
Presentation pres = new Presentation();
try {
// A dia hivatkozásának lekérése
ISlide slide = pres.getSlides().get_Item(0);
// Rectangle típusú AutoShape hozzáadása
IAutoShape ashp = slide.getShapes().addAutoShape(ShapeType.Rectangle, 150, 75, 400, 300);
ashp.getFillFormat().setFillType(FillType.NoFill);
// TextFrame hozzáadása a Rectangle-hez
ashp.addTextFrame("Aspose TextBox");
IPortion port = ashp.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0);
IPortionFormat pf = port.getPortionFormat();
pf.setFontHeight(50);
// Belső árnyék effektus engedélyezése
IEffectFormat ef = pf.getEffectFormat();
ef.enableInnerShadowEffect();
// Az összes szükséges paraméter beállítása
ef.getInnerShadowEffect().setBlurRadius(8.0);
ef.getInnerShadowEffect().setDirection(90.0F);
ef.getInnerShadowEffect().setDistance(6.0);
ef.getInnerShadowEffect().getShadowColor().setB((byte)189);
// ColorType beállítása Scheme-re
ef.getInnerShadowEffect().getShadowColor().setColorType(ColorType.Scheme);
// Scheme szín beállítása
ef.getInnerShadowEffect().getShadowColor().setSchemeColor(SchemeColor.Accent1);
// Prezentáció mentése
pres.save("WordArt_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
GYIK
Használhatok WordArt hatásokat különböző betűtípusokkal vagy írásrendszerekkel (pl. arab, kínai)?
Igen, az Aspose.Slides támogatja a Unicode‑ot, és minden főbb betűtípussal és írásrendszerrel működik. A WordArt hatásokat, például árnyék, kitöltés és körvonal, nyelvtől függetlenül alkalmazhatja, bár a betűtípusok rendelkezésre állása és megjelenítése a rendszer betűtípusaitól függhet.
Alkalmazhatok WordArt hatásokat a diamester elemeire?
Igen, a WordArt hatásokat mesterdia alakzatokra is alkalmazhatja, beleértve a címhelyettesítőket, lábléceket vagy háttérszövegeket. A mester elrendezésében végzett módosítások minden kapcsolódó diára kihatnak.
A WordArt hatások befolyásolják a prezentáció fájlméretét?
Enyhén. A shadow, glow és gradient kitöltések kisebb mértékben növelhetik a fájlméretet a formázási metaadatok hozzáadása miatt, de a különbség általában elhanyagolható.
Megtekinthetem a WordArt hatások eredményét a prezentáció mentése nélkül?
Igen, a WordArt‑ot tartalmazó diákat képekké (például PNG, JPEG) renderelheti a IShape vagy a ISlide interfész getImage metódusával. Ez lehetővé teszi a végeredmény előnézetét memória‑ vagy képernyőalapon a teljes prezentáció mentése vagy exportálása előtt.