WordArt hatások létrehozása és alkalmazása C++-ban
Áttekintés
A WordArt hatások lehetővé teszik, hogy vizuálisan vonzó, stilizált szöveget adjunk a PowerPoint prezentációkhoz. Az Aspose.Slides segítségével a fejlesztők programozott módon hozhatnak létre, testreszabhatnak és kezelhetnek WordArt-ot, akárcsak a Microsoft PowerPoint‑ban – anélkül, hogy az Office telepítve lenne. Ez a cikk áttekintést nyújt a WordArt használatáról, beleértve a szövegelmozdí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 vonzóbb legyen. A WordArt lehetővé teszi, hogy a szöveget grafikus objektumként kezeljük. Effektekből vagy speciális módosításokból áll, amelyeket a szövegre alkalmaznak, hogy az vonzóbb vagy feltűnőbb legyen.
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 C++ kóddal:
auto pres = System::MakeObject<Presentation>();
auto slide = pres->get_Slides()->idx_get(0);
auto autoShape = slide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 200.0f, 200.0f, 400.0f, 200.0f);
auto textFrame = autoShape->get_TextFrame();
auto portion = textFrame->get_Paragraphs()->idx_get(0)->get_Portions()->idx_get(0);
portion->set_Text(u"Aspose.Slides");
Most a szöveg betűméretét nagyobb értékre állítjuk, hogy a hatás jobban észrevehető legyen, ezzel a kóddal:
auto fontData = System::MakeObject<FontData>(u"Arial Black");
portion->get_PortionFormat()->set_LatinFont(fontData);
portion->get_PortionFormat()->set_FontHeight(36.0f);
Microsoft PowerPoint használata
Nyissa meg a WordArt hatások menüt a Microsoft PowerPointben:

A jobb oldali menüből választhat előre definiált WordArt hatást. A bal oldali menüből adhatja meg egy új WordArt beállításait.
Itt a rendelkezésre álló paraméterek vagy beállítások egy része:

Aspose.Slides használata
Itt a SmallGrid mintaszínt alkalmazzuk a szövegre, és 1-es vastagságú fekete szövegkeretet adunk hozzá ezzel a kóddal:
auto fillFormat = portion->get_PortionFormat()->get_FillFormat();
fillFormat->set_FillType(FillType::Pattern);
fillFormat->get_PatternFormat()->get_ForeColor()->set_Color(Color::get_DarkOrange());
fillFormat->get_PatternFormat()->get_BackColor()->set_Color(Color::get_White());
fillFormat->get_PatternFormat()->set_PatternStyle(PatternStyle::SmallGrid);
auto lineFillFormat = portion->get_PortionFormat()->get_LineFormat()->get_FillFormat();
lineFillFormat->set_FillType(FillType::Solid);
lineFillFormat->get_SolidFillColor()->set_Color(Color::get_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 ezeket a hatásokat szövegre, szövegtömbre, alakzatra vagy hasonló elemre alkalmazhatja:

Például Árnyék, Tükröződés és Ragyogás hatásokat lehet szövegre alkalmazni; 3D Formátum és 3D Forgatás hatásokat lehet szövegtömbre alkalmazni; A Lágy Szélek tulajdonságot alakzatobjektumra lehet alkalmazni (ez hatással van, ha nincs beállítva 3D Formátum tulajdonság).
Árnyék hatások alkalmazása szövegre
Itt csak a szövegre vonatkozó tulajdonságokat szeretnénk beállítani. A szövegre árnyék hatást alkalmazunk ezzel a C++ kóddal:
auto effectFormat = portion->get_PortionFormat()->get_EffectFormat();
effectFormat->EnableOuterShadowEffect();
auto outerShadowEffect = effectFormat->get_OuterShadowEffect();
outerShadowEffect->get_ShadowColor()->set_Color(Color::get_Black());
outerShadowEffect->set_ScaleHorizontal(100);
outerShadowEffect->set_ScaleVertical(65);
outerShadowEffect->set_BlurRadius(4.73);
outerShadowEffect->set_Direction(230.0f);
outerShadowEffect->set_Distance(2);
outerShadowEffect->set_SkewHorizontal(30);
outerShadowEffect->set_SkewVertical(0);
outerShadowEffect->get_ShadowColor()->get_ColorTransform()->Add(ColorTransformOperation::SetAlpha, 0.32f);
Az Aspose.Slides API három árnyék típust támogat: OuterShadow, InnerShadow és PresetShadow.
A PresetShadow segítségével előre definiált értékekkel árnyékot alkalmazhat szövegre.
Microsoft PowerPoint használata
A PowerPointban egy árnyék típust használhat. Íme egy példa:

Aspose.Slides használata
Az Aspose.Slides valójában egyszerre két árnyék típust alkalmazhat: InnerShadow és PresetShadow.
Megjegyzések:
- Ha az OuterShadow és a PresetShadow együtt kerülnek használatra, csak az OuterShadow hatás alkalmazásra kerül.
- Ha az OuterShadow és az InnerShadow egyszerre kerülnek használatra, az eredő vagy alkalmazott hatás a PowerPoint verziójától függ. Például a PowerPoint 2013‑ban a hatás duplázódik, míg a PowerPoint 2007‑ben az OuterShadow hatás kerül alkalmazásra.
Tükröződés hatások alkalmazása
Egy tükröződést adunk a szöveghez ezzel a C++ kódmintával:
auto effectFormat = portion->get_PortionFormat()->get_EffectFormat();
effectFormat->EnableReflectionEffect();
auto reflectionEffect = effectFormat->get_ReflectionEffect();
reflectionEffect->set_BlurRadius(0.5);
reflectionEffect->set_Distance(4.72);
reflectionEffect->set_StartPosAlpha(0.f);
reflectionEffect->set_EndPosAlpha(60.f);
reflectionEffect->set_Direction(90.0f);
reflectionEffect->set_ScaleHorizontal(100);
reflectionEffect->set_ScaleVertical(-100);
reflectionEffect->set_StartReflectionOpacity(60.f);
reflectionEffect->set_EndReflectionOpacity(0.9f);
reflectionEffect->set_RectangleAlign(RectangleAlignment::BottomLeft);
Ragyogás hatás alkalmazása
A szövegre ragyogás hatást alkalmazunk, hogy az ragyogjon vagy kitűnjön, ezzel a kóddal:
auto effectFormat = portion->get_PortionFormat()->get_EffectFormat();
effectFormat->EnableGlowEffect();
auto glowEffect = effectFormat->get_GlowEffect();
glowEffect->get_Color()->set_R(255);
glowEffect->get_Color()->get_ColorTransform()->Add(ColorTransformOperation::SetAlpha, 0.54f);
glowEffect->set_Radius(7);
A művelet eredménye:

Átalakítások használata WordArtban
A set_Transform metódust (ami az egész szövegblokkra vonatkozik) használjuk ezzel a kóddal:
textFrame->get_TextFrameFormat()->set_Transform(TextShapeType::ArchUpPour);
Az eredmény:

PowerPoint használata
Az előre definiált átalakítási típusok eléréséhez lépjen a következő menübe: Format -> TextEffect -> Transform
Aspose.Slides használata
Az átalakítási típus kiválasztásához használja a TextShapeType enumerációt.
3D hatások alkalmazása szövegre és alakzatokra
3D hatást állítunk be egy szövegalakzatra ezzel a mintakóddal:
auto threeDFormat = autoShape->get_ThreeDFormat();
threeDFormat->get_BevelBottom()->set_BevelType(BevelPresetType::Circle);
threeDFormat->get_BevelBottom()->set_Height(10.5);
threeDFormat->get_BevelBottom()->set_Width(10.5);
threeDFormat->get_BevelTop()->set_BevelType(BevelPresetType::Circle);
threeDFormat->get_BevelTop()->set_Height(12.5);
threeDFormat->get_BevelTop()->set_Width(11);
threeDFormat->get_ExtrusionColor()->set_Color(Color::get_Orange());
threeDFormat->set_ExtrusionHeight(6);
threeDFormat->get_ContourColor()->set_Color(Color::get_DarkRed());
threeDFormat->set_ContourWidth(1.5);
threeDFormat->set_Depth(3);
threeDFormat->set_Material(MaterialPresetType::Plastic);
threeDFormat->get_LightRig()->set_Direction(LightingDirection::Top);
threeDFormat->get_LightRig()->set_LightType(LightRigPresetType::Balanced);
threeDFormat->get_LightRig()->SetRotation(0.0f, 0.0f, 40.0f);
threeDFormat->get_Camera()->set_CameraType(CameraPresetType::PerspectiveContrastingRightFacing);
Az eredményül kapott szöveg és alakzata:

A szövegre 3D hatást alkalmazunk ezzel a C++ kóddal:
auto threeDFormat = textFrame->get_TextFrameFormat()->get_ThreeDFormat();
threeDFormat->get_BevelBottom()->set_BevelType(BevelPresetType::Circle);
threeDFormat->get_BevelBottom()->set_Height(3.5);
threeDFormat->get_BevelBottom()->set_Width(3.5);
threeDFormat->get_BevelTop()->set_BevelType(BevelPresetType::Circle);
threeDFormat->get_BevelTop()->set_Height(4);
threeDFormat->get_BevelTop()->set_Width(4);
threeDFormat->get_ExtrusionColor()->set_Color(Color::get_Orange());
threeDFormat->set_ExtrusionHeight(6);
threeDFormat->get_ContourColor()->set_Color(Color::get_DarkRed());
threeDFormat->set_ContourWidth(1.5);
threeDFormat->set_Depth(3);
threeDFormat->set_Material(MaterialPresetType::Plastic);
threeDFormat->get_LightRig()->set_Direction(LightingDirection::Top);
threeDFormat->get_LightRig()->set_LightType(LightRigPresetType::Balanced);
threeDFormat->get_LightRig()->SetRotation(0.0f, 0.0f, 40.0f);
threeDFormat->get_Camera()->set_CameraType(CameraPresetType::PerspectiveContrastingRightFacing);
A művelet eredménye:

A 3D hatások szövegekre vagy azok alakzataira való alkalmazása, valamint a hatások közötti kölcsönhatások bizonyos szabályokon alapulnak.
Vegyük figyelembe egy szöveg és a szöveget tartalmazó alakzat jelenetét. A 3D hatás tartalmazza a 3D objektum ábrázolását és a jelenetet, amelyre az objektum el lett helyezve.
- Ha a jelenet mind a alakzatra, mind a szövegre be van állítva, akkor az alakzat jelenete kapja a nagyobb prioritást – a szöveg jelenete figyelmen kívül marad.
- Ha az alakzatnak nincs saját jelenete, de van 3D ábrázolása, akkor a szöveg jelenete kerül felhasználásra.
- 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 alakzatokra
Az Aspose.Slides for C++ a IOuterShadow és a IInnerShadow osztályokat biztosítja, amelyek lehetővé teszik, hogy árnyék hatásokat alkalmazzon a TextFrame által hordott szövegre. Kövesse ezeket a lépéseket:
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze meg egy dia referenciaját az index használatával.
- Adjon egy Rectangle típusú AutoShape‑ot a diára.
- Érje el az AutoShape‑hoz tartozó TextFrame‑et.
- Állítsa be az AutoShape FillType‑ját NoFill értékre.
- Példányosítsa az OuterShadow osztályt
- Á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 értékre.
- Állítsa be az árnyék PresetColor‑át Black értékre.
- Mentse a prezentációt PPTX fájlként.
Ez a C++ mintakód – a fenti lépések megvalósítása – bemutatja, hogyan alkalmazhatja a külső árnyék hatást egy szövegre:
auto pres = System::MakeObject<Presentation>();
// Szerezzük meg a dia referenciaját
auto sld = pres->get_Slides()->idx_get(0);
// Adjunk hozzá egy Rectangle típusú AutoShape‑t
auto ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 150.0f, 75.0f, 150.0f, 50.0f);
// Adjunk TextFrame‑et a Rectangle‑hez
ashp->AddTextFrame(u"Aspose TextBox");
// Tiltsuk le az alakzat kitöltését, ha a szöveg árnyékát akarjuk
ashp->get_FillFormat()->set_FillType(FillType::NoFill);
// Adjunk hozzá külső árnyékot és állítsuk be az összes szükséges paramétert
ashp->get_EffectFormat()->EnableOuterShadowEffect();
auto shadow = ashp->get_EffectFormat()->get_OuterShadowEffect();
shadow->set_BlurRadius(4.0);
shadow->set_Direction(45.0f);
shadow->set_Distance(3);
shadow->set_RectangleAlign(RectangleAlignment::TopLeft);
shadow->get_ShadowColor()->set_PresetColor(PresetColor::Black);
// Mentse a prezentációt a lemezre
pres->Save(u"pres_out.pptx", SaveFormat::Pptx);
Belső árnyék hatások 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 hozzá egy Rectangle típusú AutoShape‑ot.
- Engedélyezze az InnerShadowEffect‑et.
- Állítsa be az összes szükséges paramétert.
- Állítsa be a ColorType‑ot Scheme értékre.
- Á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) bemutatja, hogyan adjon hozzá egy csatlakozót két alakzat között C++‑ban:
auto presentation = System::MakeObject<Presentation>();
// Szerezzük meg egy dia referenciaját
auto slide = presentation->get_Slides()->idx_get(0);
// Adjunk hozzá egy Rectangle típusú AutoShape‑t
auto ashp = slide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 150.0f, 75.0f, 400.0f, 300.0f);
ashp->get_FillFormat()->set_FillType(FillType::NoFill);
// Adjunk TextFrame‑et a Rectangle‑hez
ashp->AddTextFrame(u"Aspose TextBox");
auto port = ashp->get_TextFrame()->get_Paragraphs()->idx_get(0)->get_Portions()->idx_get(0);
auto pf = port->get_PortionFormat();
pf->set_FontHeight(50.0f);
// Engedélyezzük az InnerShadowEffect‑et
auto ef = pf->get_EffectFormat();
ef->EnableInnerShadowEffect();
// Állítsuk be az összes szükséges paramétert
auto shadow = ef->get_InnerShadowEffect();
shadow->set_BlurRadius(8.0);
shadow->set_Direction(90.0F);
shadow->set_Distance(6.0);
shadow->get_ShadowColor()->set_B(189);
// Állítsuk be a ColorType‑t Scheme‑ként
shadow->get_ShadowColor()->set_ColorType(ColorType::Scheme);
// Állítsuk be a Scheme színt
shadow->get_ShadowColor()->set_SchemeColor(SchemeColor::Accent1);
// Mentsük a prezentációt
presentation->Save(u"WordArt_out.pptx", SaveFormat::Pptx);
FAQ
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 működik minden nagyobb betűtípussal és írásrendszerrel. A WordArt hatásokat, mint az árnyék, kitöltés és körvonal, nyelvtől függetlenül alkalmazhatja, bár a betűtípus elérhetősége és megjelenítése a rendszer betűtípusaitól függhet.
Alkalmazhatok WordArt hatásokat a diamester elemeire?
Igen, a diamester diákon lévő alakzatokra, beleértve a címhelyettesítőket, lábléceket vagy háttérszöveget, alkalmazhat WordArt hatásokat. A mesterelrendezésben 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. Az olyan WordArt hatások, mint az árnyékok, ragyogások és színátmenetes kitöltések, kismértékben növelhetik a fájlméretet a hozzáadott formázási metaadatok miatt, de a különbség általában elhanyagolható.
Előnézhetem 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 ISlide interfész GetImage metódusával. Ez lehetővé teszi az eredmény előnézetét memóriában vagy a képernyőn a teljes prezentáció mentése vagy exportálása előtt.