فن الكلمات
ما هو فن الكلمات؟
فن الكلمات هو ميزة تتيح لك تطبيق تأثيرات على النصوص لجعلها بارزة. باستخدام فن الكلمات، على سبيل المثال، يمكنك وضع إطار حول نص أو ملؤه بلون (أو تدرج)، وإضافة تأثيرات ثلاثية الأبعاد، إلخ. يمكنك أيضًا إمالة أو انحناء أو تمديد شكل النص.
فن الكلمات في Microsoft PowerPoint
لاستخدام فن الكلمات في Microsoft PowerPoint، عليك اختيار أحد قوالب فن الكلمات المحددة مسبقًا. قالب فن الكلمات هو مجموعة من التأثيرات التي تُطبق على نص أو شكله.
فن الكلمات في Aspose.Slides
في Aspose.Slides لـ PHP عبر Java 20.10، قمنا بتنفيذ دعم لفن الكلمات وأدخلنا تحسينات على الميزة في إصدارات Aspose.Slides اللاحقة لـ PHP عبر Java.
مع Aspose.Slides لـ PHP عبر Java، يمكنك بسهولة إنشاء قالب فن الكلمات الخاص بك (تأثير واحد أو مجموعة من التأثيرات) وتطبيقه على النصوص.
إنشاء قالب فن كلمات بسيط وتطبيقه على نص
باستخدام Aspose.Slides
أولاً، ننشئ نصًا بسيطًا باستخدام كود PHP هذا:
$pres = new Presentation();
try {
$slide = $pres->getSlides()->get_Item(0);
$autoShape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 200, 200, 400, 200);
$textFrame = $autoShape->getTextFrame();
$portion = $textFrame->getParagraphs()->get_Item(0)->getPortions()->get_Item(0);
$portion->setText("Aspose.Slides");
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
الآن، نضع ارتفاع خط النص إلى قيمة أكبر لجعل التأثير أكثر وضوحًا من خلال هذا الكود:
$fontData = new FontData("Arial Black");
$portion->getPortionFormat()->setLatinFont($fontData);
$portion->getPortionFormat()->setFontHeight(36);
باستخدام Microsoft PowerPoint
اذهب إلى قائمة تأثيرات فن الكلمات في Microsoft PowerPoint:
من القائمة على اليمين، يمكنك اختيار تأثير فن كلمات محدد مسبقًا. من القائمة على اليسار، يمكنك تحديد الإعدادات لفن كلمات جديد.
هذه بعض من المعلمات أو الخيارات المتاحة:
باستخدام Aspose.Slides
هنا، نطبق لون نمط SmallGrid على النص ونضيف إطار نصي أسود بعرض 1 باستخدام هذا الكود:
$portion->getPortionFormat()->getFillFormat()->setFillType(FillType::Pattern);
$portion->getPortionFormat()->getFillFormat()->getPatternFormat()->getForeColor()->setColor(java("java.awt.Color")->ORANGE);
$portion->getPortionFormat()->getFillFormat()->getPatternFormat()->getBackColor()->setColor(java("java.awt.Color")->WHITE);
$portion->getPortionFormat()->getFillFormat()->getPatternFormat()->setPatternStyle(PatternStyle->SmallGrid);
$portion->getPortionFormat()->getLineFormat()->getFillFormat()->setFillType(FillType::Solid);
$portion->getPortionFormat()->getLineFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLACK);
النص الناتج:
تطبيق تأثيرات فن كلمات أخرى
باستخدام Microsoft PowerPoint
من واجهة البرنامج، يمكنك تطبيق هذه التأثيرات على نص، كتلة نصية، شكل، أو عنصر مشابه:
على سبيل المثال، يمكن تطبيق تأثيرات الظل، الانعكاس، والتوهج على نص؛ يمكن تطبيق تأثيرات التنسيق ثلاثي الأبعاد والدوران ثلاثي الأبعاد على كتلة نصية؛ خاصية الحواف الناعمة يمكن تطبيقها على كائن شكل (لا تزال تؤثر عند عدم تعيين خاصية التنسيق ثلاثي الأبعاد).
تطبيق تأثيرات الظل
هنا، نعتزم تعيين الخصائص المتعلقة بالنص فقط. نقوم بتطبيق تأثير الظل على النص باستخدام هذا الكود:
$portion->getPortionFormat()->getEffectFormat()->enableOuterShadowEffect();
$portion->getPortionFormat()->getEffectFormat()->getOuterShadowEffect()->getShadowColor()->setColor(java("java.awt.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.32);
تدعم واجهة برمجة تطبيقات 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.
تطبيق العرض على النصوص
نضيف عرض إلى النص من خلال عينة الكود هذه:
$portion->getPortionFormat()->getEffectFormat()->enableReflectionEffect();
$portion->getPortionFormat()->getEffectFormat()->getReflectionEffect()->setBlurRadius(0.5);
$portion->getPortionFormat()->getEffectFormat()->getReflectionEffect()->setDistance(4.72);
$portion->getPortionFormat()->getEffectFormat()->getReflectionEffect()->setStartPosAlpha(0.0);
$portion->getPortionFormat()->getEffectFormat()->getReflectionEffect()->setEndPosAlpha(60.0);
$portion->getPortionFormat()->getEffectFormat()->getReflectionEffect()->setDirection(90);
$portion->getPortionFormat()->getEffectFormat()->getReflectionEffect()->setScaleHorizontal(100);
$portion->getPortionFormat()->getEffectFormat()->getReflectionEffect()->setScaleVertical(-100);
$portion->getPortionFormat()->getEffectFormat()->getReflectionEffect()->setStartReflectionOpacity(60.0);
$portion->getPortionFormat()->getEffectFormat()->getReflectionEffect()->setEndReflectionOpacity(0.9);
$portion->getPortionFormat()->getEffectFormat()->getReflectionEffect()->setRectangleAlign(RectangleAlignment->BottomLeft);
تطبيق تأثير التوهج على النصوص
نطبق تأثير التوهج على النص لجعله يتألق أو يبرز باستخدام هذا الكود:
$portion->getPortionFormat()->getEffectFormat()->enableGlowEffect();
$portion->getPortionFormat()->getEffectFormat()->getGlowEffect()->getColor()->setR(255);
$portion->getPortionFormat()->getEffectFormat()->getGlowEffect()->getColor()->getColorTransform()->add(ColorTransformOperation->SetAlpha, 0.54);
$portion->getPortionFormat()->getEffectFormat()->getGlowEffect()->setRadius(7);
نتيجة العملية:
باستخدام التحولات في فن الكلمات
نستخدم خاصية التحويل (التي تعود لجميع كتلة النص) من خلال هذا الكود:
$textFrame->getTextFrameFormat()->setTransform(TextShapeType::ArchUpPour);
النتيجة:
باستخدام PowerPoint
للوصول إلى أنواع التحولات المحددة مسبقًا، انتقل إلى: التنسيق -> تأثير النص -> تحويل
باستخدام Aspose.Slides
لاختيار نوع التحويل، استخدم تعداد TextShapeType.
تطبيق تأثيرات ثلاثية الأبعاد على النصوص والأشكال
نقوم بتعيين تأثير ثلاثي الأبعاد على شكل النص باستخدام هذا الكود التجريبي:
$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(java("java.awt.Color")->ORANGE);
$autoShape->getThreeDFormat()->setExtrusionHeight(6);
$autoShape->getThreeDFormat()->getContourColor()->setColor(java("java.awt.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);
النص الناتج وشكله:
نطبق تأثير ثلاثي الأبعاد على النص باستخدام كود PHP هذا:
$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(java("java.awt.Color")->ORANGE);
$textFrame->getTextFrameFormat()->getThreeDFormat()->setExtrusionHeight(6);
$textFrame->getTextFrameFormat()->getThreeDFormat()->getContourColor()->setColor(java("java.awt.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);
نتيجة العملية:
يعتمد تطبيق التأثيرات ثلاثية الأبعاد على النصوص أو أشكالها والتفاعلات بين التأثيرات على قواعد معينة.
اعتبر مشهدًا لنص والشكل الذي يحتوي على هذا النص. يتضمن التأثير ثلاثي الأبعاد تمثيل كائن ثلاثي الأبعاد والمشهد الذي تم وضع الكائن فيه.
- عند تعيين المشهد لكل من الشكل والنص، يكون لمشهد الشكل الأولوية الأعلى—يتم تجاهل مشهد النص.
- عندما يفتقر الشكل إلى مشهد خاص به ولكنه يحتوي على تمثيل ثلاثي الأبعاد، يتم استخدام مشهد النص.
- بخلاف ذلك—عندما لا يحتوي الشكل في الأصل على تأثير ثلاثي الأبعاد—يكون الشكل مسطحًا ويتم تطبيق التأثير ثلاثي الأبعاد فقط على النص.
تتعلق هذه الأوصاف بأساليب ThreeDFormat.getLightRig() وThreeDFormat.getCamera().
تطبيق تأثيرات الظل الخارجي على النصوص
تقدم Aspose.Slides لـ PHP عبر Java الفصول IOuterShadow وIInnerShadow التي تتيح لك تطبيق تأثيرات الظل على النص الذي تحمله TextFrame. اتبع هذه الخطوات:
- إنشاء مثيل من فصل Presentation.
- الحصول على مرجع لشريحة باستخدام فهرسها.
- إضافة شكل تلقائي من نوع مستطيل إلى الشريحة.
- الوصول إلى TextFrame المرتبط بالشكل التلقائي.
- تعيين FillType للشكل التلقائي إلى NoFill.
- إنشاء مثيل من فصل OuterShadow.
- تعيين BlurRadius للظل.
- تعيين اتجاه الظل.
- تعيين مسافة الظل.
- تعيين RectangleAlign إلى TopLeft.
- تعيين PresetColor للظل إلى الأسود.
- كتابة العرض كملف PPTX.
هذا الكود التجريبي — تنفيذاً للخطوات أعلاه — يوضح لك كيفية تطبيق تأثير الظل الخارجي على نص:
$pres = new Presentation();
try {
# الحصول على مرجع للشريحة
$sld = $pres->getSlides()->get_Item(0);
# إضافة شكل تلقائي من نوع المستطيل
$ashp = $sld->getShapes()->addAutoShape(ShapeType::Rectangle, 150, 75, 150, 50);
# إضافة TextFrame إلى المستطيل
$ashp->addTextFrame("Aspose TextBox");
# تعطيل ملء الشكل في حال أردنا الحصول على ظل النص
$ashp->getFillFormat()->setFillType(FillType::NoFill);
# إضافة ظل خارجي وضبط جميع المعلمات الضرورية
$ashp->getEffectFormat()->enableOuterShadowEffect();
$shadow = $ashp->getEffectFormat()->getOuterShadowEffect();
$shadow->setBlurRadius(4.0);
$shadow->setDirection(45);
$shadow->setDistance(3);
$shadow->setRectangleAlign(RectangleAlignment->TopLeft);
$shadow->getShadowColor()->setPresetColor(PresetColor->Black);
# كتابة العرض إلى القرص
$pres->save("pres_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
تطبيق تأثير الظل الداخلي على الأشكال
اتبع هذه الخطوات:
- إنشاء مثيل من فصل Presentation.
- الحصول على مرجع للشريحة.
- إضافة شكل تلقائي من نوع المستطيل.
- تمكين InnerShadowEffect.
- تعيين جميع المعلمات الضرورية.
- تعيين ColorType كـ Scheme.
- تعيين لون المخطط.
- كتابة العرض كملف PPTX.
هذا الكود التجريبي (استنادًا إلى الخطوات أعلاه) يوضح لك كيفية إضافة موصل بين شكلين:
$pres = new Presentation();
try {
# الحصول على مرجع للشريحة
$slide = $pres->getSlides()->get_Item(0);
# إضافة شكل تلقائي من نوع المستطيل
$ashp = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 150, 75, 400, 300);
$ashp->getFillFormat()->setFillType(FillType::NoFill);
# إضافة TextFrame إلى المستطيل
$ashp->addTextFrame("Aspose TextBox");
$port = $ashp->getTextFrame()->getParagraphs()->get_Item(0)->getPortions()->get_Item(0);
$pf = $port->getPortionFormat();
$pf->setFontHeight(50);
# تمكين InnerShadowEffect
$ef = $pf->getEffectFormat();
$ef->enableInnerShadowEffect();
# تعيين جميع المعلمات الضرورية
$ef->getInnerShadowEffect()->setBlurRadius(8.0);
$ef->getInnerShadowEffect()->setDirection(90.0);
$ef->getInnerShadowEffect()->setDistance(6.0);
$ef->getInnerShadowEffect()->getShadowColor()->setB(189);
# تعيين ColorType كمخطط
$ef->getInnerShadowEffect()->getShadowColor()->setColorType(ColorType::Scheme);
# تعيين لون المخطط
$ef->getInnerShadowEffect()->getShadowColor()->setSchemeColor(SchemeColor->Accent1);
# حفظ العرض
$pres->save("WordArt_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}