Δημιουργία και Εφαρμογή Εφέ WordArt σε C++
Επισκόπηση
Οι εφέ WordArt σάς επιτρέπουν να προσθέτετε οπτικά ελκυστικό, μορφοποιημένο κείμενο στις παρουσιάσεις PowerPoint. Με το Aspose.Slides, οι προγραμματιστές μπορούν προγραμματιστικά να δημιουργούν, να προσαρμόζουν και να διαχειρίζονται WordArt όπως στο Microsoft PowerPoint—χωρίς να απαιτείται εγκατάσταση του Office. Αυτό το άρθρο παρέχει μια επισκόπηση της εργασίας με το WordArt, συμπεριλαμβανομένου του πώς να εφαρμόζετε μετασχηματισμούς κειμένου, στυλ γεμίσματος, περιγράμματα, σκιές και άλλες επιλογές μορφοποίησης για να κάνετε το περιεχόμενο της παρουσίασής σας πιο εκφραστικό και ελκυστικό. Το WordArt σας επιτρέπει να αντιμετωπίζετε το κείμενο ως γραφικό αντικείμενο. Αποτελείται από εφέ ή ειδικές τροποποιήσεις που εφαρμόζονται στο κείμενο ώστε να γίνει πιο ελκυστικό ή εμφανές.
Δημιουργία ενός Απλού Πρότυπου WordArt και Εφαρμογή του σε Κείμενο
Χρήση Aspose.Slides
Πρώτα, δημιουργούμε ένα απλό κείμενο χρησιμοποιώντας αυτόν τον κώδικα C++:
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");
Τώρα, ορίζουμε το ύψος γραμματοσειράς του κειμένου σε μεγαλύτερη τιμή ώστε το εφέ να είναι πιο εμφανές μέσω αυτού του κώδικα:
auto fontData = System::MakeObject<FontData>(u"Arial Black");
portion->get_PortionFormat()->set_LatinFont(fontData);
portion->get_PortionFormat()->set_FontHeight(36.0f);
Χρήση Microsoft PowerPoint
Μεταβείτε στο μενού εφέ WordArt στο Microsoft PowerPoint:

Από το μενού στα δεξιά, μπορείτε να επιλέξετε ένα προκαθορισμένο εφέ WordArt. Από το μενού στα αριστερά, μπορείτε να ορίσετε τις ρυθμίσεις για ένα νέο WordArt.
Αυτά είναι κάποια από τα διαθέσιμα παραμέτρους ή επιλογές:

Χρήση Aspose.Slides
Εδώ, εφαρμόζουμε το χρώμα μοτίβου SmallGrid στο κείμενο και προσθέτουμε ένα μαύρο περιθώριο κειμένου πλάτους 1 χρησιμοποιώντας αυτόν τον κώδικα:
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());
Το αποτέλεσμα κειμένου:

Εφαρμογή Άλλων Εφέ WordArt
Χρήση Microsoft PowerPoint
Από τη διεπαφή του προγράμματος, μπορείτε να εφαρμόσετε αυτά τα εφέ σε κείμενο, μπλοκ κειμένου, σχήμα ή παρόμοιο στοιχείο:

Για παράδειγμα, τα εφέ Σκιά, Ανάκλαση και Λάμψη μπορούν να εφαρμοστούν σε κείμενο· τα εφέ 3D Format και 3D Rotation μπορούν να εφαρμοστούν σε μπλοκ κειμένου· η ιδιότητα Soft Edges μπορεί να εφαρμοστεί σε αντικείμενο Σχήματος (έχει ακόμη αποτέλεσμα όταν δεν έχει οριστεί ιδιότητα 3D Format).
Εφαρμογή Σκιών σε Κείμενο
Εδώ, προτιθέμενοι να ορίσουμε ιδιότητες που αφορούν μόνο κείμενο. Εφαρμόζουμε το εφέ σκίασης σε κείμενο χρησιμοποιώντας αυτόν τον κώδικα C++:
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);
Το API του Aspose.Slides υποστηρίζει τρεις τύπους σκιών: OuterShadow, InnerShadow και PresetShadow.
Με το PresetShadow, μπορείτε να εφαρμόσετε σκιά σε κείμενο (χρησιμοποιώντας προκαθορισμένες τιμές).
Χρήση Microsoft PowerPoint
Στο PowerPoint, μπορείτε να χρησιμοποιήσετε έναν τύπο σκιάς. Να ένα παράδειγμα:

Χρήση Aspose.Slides
Το Aspose.Slides επιτρέπει στην πραγματικότητα την ταυτόχρονη εφαρμογή δύο τύπων σκιών: InnerShadow και PresetShadow.
Σημειώσεις:
- Όταν χρησιμοποιούνται μαζί OuterShadow και PresetShadow, εφαρμόζεται μόνο το εφέ OuterShadow.
- Αν χρησιμοποιηθούν ταυτόχρονα OuterShadow και InnerShadow, το αποτέλεσμα ή το εφαρμοσμένο εφέ εξαρτάται από την έκδοση του PowerPoint. Για παράδειγμα, στο PowerPoint 2013, το εφέ διπλασιάζεται. Στο PowerPoint 2007, εφαρμόζεται το εφέ OuterShadow.
Εφαρμογή Εφέ Ανάκλασης
Προσθέτουμε ανάκλαση στο κείμενο μέσω αυτού του δείγματος κώδικα C++:
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);
Εφαρμογή Εφέ Λάμψης
Εφαρμόζουμε το εφέ λάμψης στο κείμενο ώστε να λάμψει ή να ξεχωρίσει χρησιμοποιώντας αυτόν τον κώδικα:
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);
Το αποτέλεσμα της λειτουργίας:

Χρήση Μετασχηματισμών στο WordArt
Χρησιμοποιούμε τη μέθοδο set_Transform (εφαρμοζόμενη σε όλο το μπλοκ κειμένου) μέσω αυτού του κώδικα:
textFrame->get_TextFrameFormat()->set_Transform(TextShapeType::ArchUpPour);
Το αποτέλεσμα:

Χρήση PowerPoint
Για να αποκτήσετε πρόσβαση σε προρυθμιζόμενους τύπους μετασχηματισμού, πηγαίνετε στο: Format -> TextEffect -> Transform
Χρήση Aspose.Slides
Για να επιλέξετε τύπο μετασχηματισμού, χρησιμοποιήστε το enum TextShapeType.
Εφαρμογή 3D Εφέ σε Κείμενο και Σχήματα
Ορίζουμε ένα 3D εφέ σε σχήμα κειμένου χρησιμοποιώντας αυτό το δείγμα κώδικα:
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);
Το αποτέλεσμα κειμένου και του σχήματος:

Εφαρμόζουμε 3D εφέ στο κείμενο με αυτόν τον κώδικα C++:
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);
Το αποτέλεσμα της λειτουργίας:

Η εφαρμογή 3D εφέ σε κείμενα ή στα σχήματά τους και οι αλληλοεπιδράσεις μεταξύ των εφέ βασίζονται σε ορισμένους κανόνες.
Σκεφτείτε μια σκηνή για ένα κείμενο και το σχήμα που το περιέχει. Το 3D εφέ περιλαμβάνει την αναπαράσταση αντικειμένου 3D και τη σκηνή πάνω στην οποία τοποθετήθηκε το αντικείμενο.
- Όταν η σκηνή ορίζεται και για το σχήμα και για το κείμενο, η σκηνή του σχήματος έχει προτεραιότητα — η σκηνή του κειμένου αγνοείται.
- Όταν το σχήμα δεν έχει δική του σκηνή αλλά έχει 3D αναπαράσταση, χρησιμοποιείται η σκηνή του κειμένου.
- Αλλιώς — όταν το σχήμα αρχικά δεν έχει 3D εφέ — το σχήμα είναι επίπεδο και το 3D εφέ εφαρμόζεται μόνο στο κείμενο.
Αυτές οι περιγραφές συνδέονται με τις μεθόδους ThreeDFormat.getLightRig() και ThreeDFormat.getCamera().
Εφαρμογή Εξωτερικής Σκιάς σε Σχήματα
Το Aspose.Slides για C++ παρέχει τις κλάσεις IOuterShadow και IInnerShadow που επιτρέπουν την εφαρμογή εφέ σκιάς σε κείμενο που βρίσκεται σε TextFrame. Ακολουθήστε τα παρακάτω βήματα:
- Δημιουργήστε ένα αντίγραφο της κλάσης Presentation.
- Αποκτήστε την αναφορά μιας διαφάνειας χρησιμοποιώντας το δείκτη της.
- Προσθέστε ένα AutoShape τύπου Rectangle στη διαφάνεια.
- Προσπελάστε το TextFrame που συνδέεται με το AutoShape.
- Ορίστε το FillType του AutoShape σε NoFill.
- Δημιουργήστε μια παρουσία της κλάσης OuterShadow.
- Ορίστε το BlurRadius της σκιάς.
- Ορίστε την Direction της σκιάς.
- Ορίστε το Distance της σκιάς.
- Ορίστε το RectanglelAlign σε TopLeft.
- Ορίστε το PresetColor της σκιάς σε Black.
- Αποθηκεύστε την παρουσίαση ως αρχείο PPTX.
Αυτός ο δείγματος κώδικας σε C++ — μια υλοποίηση των παραπάνω βημάτων — δείχνει πώς να εφαρμόσετε το εξωτερικό εφέ σκιάς σε κείμενο:
auto pres = System::MakeObject<Presentation>();
// Λάβετε την αναφορά της διαφάνειας
auto sld = pres->get_Slides()->idx_get(0);
// Προσθέστε ένα AutoShape τύπου Rectangle
auto ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 150.0f, 75.0f, 150.0f, 50.0f);
// Προσθέστε TextFrame στο Rectangle
ashp->AddTextFrame(u"Aspose TextBox");
// Απενεργοποιήστε το γέμισμα του σχήματος σε περίπτωση που θέλουμε τη σκιά του κειμένου
ashp->get_FillFormat()->set_FillType(FillType::NoFill);
// Προσθέστε εξωτερική σκιά και ορίστε όλες τις απαραίτητες παραμέτρους
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);
// Αποθηκεύστε την παρουσίαση στο δίσκο
pres->Save(u"pres_out.pptx", SaveFormat::Pptx);
Εφαρμογή Εσωτερικής Σκιάς σε Σχήματα
Ακολουθήστε τα παρακάτω βήματα:
- Δημιουργήστε ένα αντίγραφο της κλάσης Presentation.
- Αποκτήστε μια αναφορά της διαφάνειας.
- Προσθέστε ένα AutoShape τύπου Rectangle.
- Ενεργοποιήστε το InnerShadowEffect.
- Ορίστε όλες τις απαραίτητες παραμέτρους.
- Ορίστε το ColorType ως Scheme.
- Ορίστε το Scheme Color.
- Αποθηκεύστε την παρουσίαση ως αρχείο PPTX.
Αυτός ο δείγμα κώδικα (βάσει των παραπάνω βημάτων) δείχνει πώς να προσθέσετε ένα σύνδεσμο μεταξύ δύο σχημάτων σε C++:
auto presentation = System::MakeObject<Presentation>();
// Λάβετε την αναφορά μιας διαφάνειας
auto slide = presentation->get_Slides()->idx_get(0);
// Προσθέστε ένα AutoShape τύπου Rectangle
auto ashp = slide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 150.0f, 75.0f, 400.0f, 300.0f);
ashp->get_FillFormat()->set_FillType(FillType::NoFill);
// Προσθέστε TextFrame στο Rectangle
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);
// Ενεργοποίηση InnerShadowEffect
auto ef = pf->get_EffectFormat();
ef->EnableInnerShadowEffect();
// Ορίστε όλες τις απαραίτητες παραμέτρους
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);
// Ορίστε ColorType ως Scheme
shadow->get_ShadowColor()->set_ColorType(ColorType::Scheme);
// Ορίστε Scheme Color
shadow->get_ShadowColor()->set_SchemeColor(SchemeColor::Accent1);
// Αποθηκεύστε την παρουσίαση
presentation->Save(u"WordArt_out.pptx", SaveFormat::Pptx);
Συχνές ερωτήσεις
Μπορώ να χρησιμοποιήσω εφέ WordArt με διαφορετικές γραμματοσειρές ή αλφάβητα (π.χ. αραβικά, κινέζικα);
Ναι, το Aspose.Slides υποστηρίζει Unicode και λειτουργεί με όλες τις κύριες γραμματοσειρές και αλφάβητα. Τα εφέ WordArt όπως σκιά, γέμισμα και περιγράμματα μπορούν να εφαρμοστούν ανεξάρτητα από τη γλώσσα, αν και η διαθεσιμότητα της γραμματοσειράς και η απόδοση μπορεί να εξαρτώνται από τις γραμματοσειρές του συστήματος.
Μπορώ να εφαρμόσω εφέ WordArt σε στοιχεία του master των διαφανειών;
Ναι, μπορείτε να εφαρμόσετε εφέ WordArt σε σχήματα στις διαφάνειες master, συμπεριλαμβανομένων των placeholders τίτλου, υποσέλιδων ή κειμένου φόντου. Οι αλλαγές που γίνονται στη διάταξη του master θα αντικατοπτρίζονται σε όλες τις συνδεδεμένες διαφάνειες.
Επηρεάζουν τα εφέ WordArt το μέγεθος του αρχείου της παρουσίασης;
Λίγο. Εφέ WordArt όπως σκιές, λάμψεις και διαβαθμίσεις γεμίσματος μπορεί να αυξήσουν ελαφρά το μέγεθος του αρχείου λόγω πρόσθετων μεταδεδομένων μορφοποίησης, αλλά η διαφορά είναι συνήθως αμελητέα.
Μπορώ να προεπισκοπήσω το αποτέλεσμα των εφέ WordArt χωρίς να αποθηκεύσω την παρουσίαση;
Ναι, μπορείτε να αποδώσετε διαφάνειες που περιέχουν WordArt σε εικόνες (π.χ. PNG, JPEG) χρησιμοποιώντας τη μέθοδο GetImage από τις διεπαφές IShape ή ISlide. Αυτό σας επιτρέπει να προεπισκοπήσετε το αποτέλεσμα στη μνήμη ή στην οθόνη πριν αποθηκεύσετε ή εξάγετε ολόκληρη την παρουσίαση.