الحصول على خصائص الشكل الفعالة من العروض التقديمية في Java
في هذا الموضوع، سنناقش الخصائص الفعالة و المحلية. عندما نقوم بتعيين القيم مباشرةً عند هذه المستويات
- في خصائص الجزء على شريحة الجزء؛
- في نمط نص الشكل النموذجي على شريحة التخطيط أو الشريحة الرئيسية (إذا كان لشكل إطار النص للجزء واحد)؛
- في إعدادات النص العالمية للعرض التقديمي؛
تُدعى تلك القيم القيم المحلية. في أي مستوى، يمكن تعريف أو حذف القيم المحلية. ولكن عندما يحتاج التطبيق إلى معرفة الشكل الذي يجب أن يظهر به الجزء، يستخدم القيم الفعالة. يمكنك الحصول على القيم الفعالة باستخدام الطريقة getEffective() من التنسيق المحلي.
هذا مثال على التعليمات البرمجية يوضح لك كيفية الحصول على القيم الفعالة:
Presentation pres = new Presentation("Presentation1.pptx");
try {
IAutoShape shape = (IAutoShape)pres.getSlides().get_Item(0).getShapes().get_Item(0);
ITextFrameFormat localTextFrameFormat = shape.getTextFrame().getTextFrameFormat();
ITextFrameFormatEffectiveData effectiveTextFrameFormat = localTextFrameFormat.getEffective();
IPortionFormat localPortionFormat = shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat();
IPortionFormatEffectiveData effectivePortionFormat = localPortionFormat.getEffective();
} finally {
if (pres != null) pres.dispose();
}
الحصول على خصائص الكاميرا الفعالة
Aspose.Slides for Java يسمح للمطورين بالحصول على خصائص الكاميرا الفعالة. لهذا الغرض، تم إضافة الواجهة ICameraEffectiveData إلى Aspose.Slides. تمثل واجهة ICameraEffectiveData كائنًا غير قابل للتغيير يحتوي على خصائص الكاميرا الفعالة. تُستخدم نسخة من واجهة ICameraEffectiveData كجزء من واجهة IThreeDFormatEffectiveData، والتي هي زوج القيم الفعالة لـ ThreeDFormat class.
هذا مثال على التعليمات البرمجية يوضح لك كيفية الحصول على خصائص الكاميرا الفعالة:
Presentation pres = new Presentation("Presentation1.pptx");
try {
IThreeDFormatEffectiveData threeDEffectiveData = pres.getSlides().get_Item(0).getShapes().get_Item(0).getThreeDFormat().getEffective();
System.out.println("= Effective camera properties =");
System.out.println("Type: " + threeDEffectiveData.getCamera().getCameraType());
System.out.println("Field of view: " + threeDEffectiveData.getCamera().getFieldOfViewAngle());
System.out.println("Zoom: " + threeDEffectiveData.getCamera().getZoom());
} finally {
if (pres != null) pres.dispose();
}
الحصول على خصائص Light Rig الفعالة
Aspose.Slides for Java يسمح للمطورين بالحصول على خصائص Light Rig الفعالة. لهذا الغرض، تم إضافة الواجهة ILightRigEffectiveData إلى Aspose.Slides. تمثل واجهة ILightRigEffectiveData كائنًا غير قابل للتغيير يحتوي على خصائص Light Rig الفعالة. تُستخدم نسخة من واجهة ILightRigEffectiveData كجزء من واجهة IThreeDFormatEffectiveData، والتي هي زوج القيم الفعالة لـ ThreeDFormat class.
هذا مثال على التعليمات البرمجية يوضح لك كيفية الحصول على خصائص Light Rig الفعالة:
Presentation pres = new Presentation("Presentation1.pptx");
try {
IThreeDFormatEffectiveData threeDEffectiveData = pres.getSlides().get_Item(0).getShapes().get_Item(0).getThreeDFormat().getEffective();
System.out.println("= Effective light rig properties =");
System.out.println("Type: " + threeDEffectiveData.getLightRig().getLightType());
System.out.println("Direction: " + threeDEffectiveData.getLightRig().getDirection());
} finally {
if (pres != null) pres.dispose();
}
الحصول على خصائص الشكل القَطعي الفعالة
Aspose.Slides for Java يسمح للمطورين بالحصول على خصائص الشكل القَطعي الفعالة. لهذا الغرض، تم إضافة الواجهة IShapeBevelEffectiveData إلى Aspose.Slides. تمثل واجهة IShapeBevelEffectiveData كائنًا غير قابل للتغيير يحتوي على خصائص ارتخاء سطح الشكل الفعالة. تُستخدم نسخة من واجهة IShapeBevelEffectiveData كجزء من واجهة IThreeDFormatEffectiveData، والتي هي زوج القيم الفعالة لـ ThreeDFormat class.
هذا مثال على التعليمات البرمجية يوضح لك كيفية الحصول على خصائص الشكل القَطعي الفعالة:
Presentation pres = new Presentation("Presentation1.pptx");
try {
IThreeDFormatEffectiveData threeDEffectiveData = pres.getSlides().get_Item(0).getShapes().get_Item(0).getThreeDFormat().getEffective();
System.out.println("= Effective shape's top face relief properties =");
System.out.println("Type: " + threeDEffectiveData.getBevelTop().getBevelType());
System.out.println("Width: " + threeDEffectiveData.getBevelTop().getWidth());
System.out.println("Height: " + threeDEffectiveData.getBevelTop().getHeight());
} finally {
if (pres != null) pres.dispose();
}
الحصول على خصائص إطار النص الفعالة
باستخدام Aspose.Slides for Java، يمكنك الحصول على خصائص إطار النص الفعالة. لهذا الغرض، تم إضافة الواجهة ITextFrameFormatEffectiveData إلى Aspose.Slides. تحتوي على خصائص تنسيق إطار النص الفعالة.
هذا مثال على التعليمات البرمجية يوضح لك كيفية الحصول على خصائص تنسيق إطار النص الفعالة:
Presentation pres = new Presentation("Presentation1.pptx");
try {
IAutoShape shape = (IAutoShape)pres.getSlides().get_Item(0).getShapes().get_Item(0);
ITextFrameFormatEffectiveData effectiveTextFrameFormat = shape.getTextFrame().getTextFrameFormat().getEffective();
System.out.println("Anchoring type: " + effectiveTextFrameFormat.getAnchoringType());
System.out.println("Autofit type: " + effectiveTextFrameFormat.getAutofitType());
System.out.println("Text vertical type: " + effectiveTextFrameFormat.getTextVerticalType());
System.out.println("Margins");
System.out.println(" Left: " + effectiveTextFrameFormat.getMarginLeft());
System.out.println(" Top: " + effectiveTextFrameFormat.getMarginTop());
System.out.println(" Right: " + effectiveTextFrameFormat.getMarginRight());
System.out.println(" Bottom: " + effectiveTextFrameFormat.getMarginBottom());
} finally {
if (pres != null) pres.dispose();
}
الحصول على خصائص نمط النص الفعالة
باستخدام Aspose.Slides for Java، يمكنك الحصول على خصائص نمط النص الفعالة. لهذا الغرض، تم إضافة الواجهة ITextStyleEffectiveData إلى Aspose.Slides. تحتوي على خصائص نمط النص الفعالة.
هذا مثال على التعليمات البرمجية يوضح لك كيفية الحصول على خصائص نمط النص الفعالة:
Presentation pres = new Presentation("Presentation1.pptx");
try {
IAutoShape shape = (IAutoShape)pres.getSlides().get_Item(0).getShapes().get_Item(0);
ITextStyleEffectiveData effectiveTextStyle = shape.getTextFrame().getTextFrameFormat().getTextStyle().getEffective();
for (int i = 0; i <= 8; i++)
{
IParagraphFormatEffectiveData effectiveStyleLevel = effectiveTextStyle.getLevel(i);
System.out.println("= Effective paragraph formatting for style level #" + i + " =");
System.out.println("Depth: " + effectiveStyleLevel.getDepth());
System.out.println("Indent: " + effectiveStyleLevel.getIndent());
System.out.println("Alignment: " + effectiveStyleLevel.getAlignment());
System.out.println("Font alignment: " + effectiveStyleLevel.getFontAlignment());
}
} finally {
if (pres != null) pres.dispose();
}
الحصول على قيمة ارتفاع الخط الفعال
باستخدام Aspose.Slides for Java، يمكنك الحصول على خصائص ارتفاع الخط الفعالة. هنا نقدم كودًا يوضح تغيير قيمة ارتفاع الخط الفعالة للجزء بعد تعيين قيم ارتفاع الخط المحلية على مستويات مختلفة من هيكل العرض:
Presentation pres = new Presentation();
try {
IAutoShape newShape = pres.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 100, 100, 400, 75, false);
newShape.addTextFrame("");
newShape.getTextFrame().getParagraphs().get_Item(0).getPortions().clear();
IPortion portion0 = new Portion("Sample text with first portion");
IPortion portion1 = new Portion(" and second portion.");
newShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion0);
newShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion1);
System.out.println("Effective font height just after creation:");
System.out.println("Portion #0: " + portion0.getPortionFormat().getEffective().getFontHeight());
System.out.println("Portion #1: " + portion1.getPortionFormat().getEffective().getFontHeight());
pres.getDefaultTextStyle().getLevel(0).getDefaultPortionFormat().setFontHeight(24);
System.out.println("Effective font height after setting entire presentation default font height:");
System.out.println("Portion #0: " + portion0.getPortionFormat().getEffective().getFontHeight());
System.out.println("Portion #1: " + portion1.getPortionFormat().getEffective().getFontHeight());
newShape.getTextFrame().getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().setFontHeight(40);
System.out.println("Effective font height after setting paragraph default font height:");
System.out.println("Portion #0: " + portion0.getPortionFormat().getEffective().getFontHeight());
System.out.println("Portion #1: " + portion1.getPortionFormat().getEffective().getFontHeight());
newShape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().setFontHeight(55);
System.out.println("Effective font height after setting portion #0 font height:");
System.out.println("Portion #0: " + portion0.getPortionFormat().getEffective().getFontHeight());
System.out.println("Portion #1: " + portion1.getPortionFormat().getEffective().getFontHeight());
newShape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(1).getPortionFormat().setFontHeight(18);
System.out.println("Effective font height after setting portion #1 font height:");
System.out.println("Portion #0: " + portion0.getPortionFormat().getEffective().getFontHeight());
System.out.println("Portion #1: " + portion1.getPortionFormat().getEffective().getFontHeight());
pres.save("SetLocalFontHeightValues.pptx",SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
الحصول على تنسيق التعبئة الفعال لجدول
باستخدام Aspose.Slides for Java، يمكنك الحصول على تنسيق التعبئة الفعال لأجزاء منطقية مختلفة من الجدول. لهذا الغرض، تمت إضافة الواجهة ICellFormatEffectiveData إلى Aspose.Slides. تحتوي على خصائص تنسيق التعبئة الفعالة. يرجى ملاحظة ما يلي: تنسيق الخلية له أولوية دائمًا على تنسيق الصف؛ والصف له أولوية على العمود؛ والعمود له أولوية على الجدول بأكمله.
Presentation pres = new Presentation("Presentation1.pptx");
try {
ITable tbl = (ITable)pres.getSlides().get_Item(0).getShapes().get_Item(0);
ITableFormatEffectiveData tableFormatEffective = tbl.getTableFormat().getEffective();
IRowFormatEffectiveData rowFormatEffective = tbl.getRows().get_Item(0).getRowFormat().getEffective();
IColumnFormatEffectiveData columnFormatEffective = tbl.getColumns().get_Item(0).getColumnFormat().getEffective();
ICellFormatEffectiveData cellFormatEffective = tbl.get_Item(0, 0).getCellFormat().getEffective();
IFillFormatEffectiveData tableFillFormatEffective = tableFormatEffective.getFillFormat();
IFillFormatEffectiveData rowFillFormatEffective = rowFormatEffective.getFillFormat();
IFillFormatEffectiveData columnFillFormatEffective = columnFormatEffective.getFillFormat();
IFillFormatEffectiveData cellFillFormatEffective = cellFormatEffective.getFillFormat();
} finally {
if (pres != null) pres.dispose();
}
الأسئلة المتكررة
كيف يمكنني معرفة أنني حصلت على “لقطة” بدلاً من “كائن حي”، ومتى يجب قراءة الخصائص الفعالة مرة أخرى؟
كائنات EffectiveData هي لقطات غير قابلة للتغيير للقيم المحسوبة في وقت الاستدعاء. إذا قمت بتغيير الإعدادات المحلية أو الموروثة للشكل، استرجع البيانات الفعالة مرة أخرى للحصول على القيم المحدّثة.
هل يؤثر تغيير شريحة التخطيط/الرئيسية على الخصائص الفعالة التي تم استرجاعها مسبقًا؟
نعم، ولكن فقط بعد قراءتها مرة أخرى. كائن EffectiveData الذي تم الحصول عليه مسبقًا لا يحدّث نفسه—اطلبه مرة أخرى بعد تغيير التخطيط أو الشريحة الرئيسية.
هل يمكنني تعديل القيم عبر EffectiveData؟
لا. EffectiveData للقراءة فقط. قم بإجراء التغييرات في كائنات التنسيق المحلي (الشكل/النص/3D، إلخ)، ثم احصل على القيم الفعالة مرة أخرى.
ماذا يحدث إذا لم يتم تعيين خاصية على مستوى الشكل ولا في التخطيط/الرئيسية ولا في الإعدادات العامة؟
تُحدد القيمة الفعالة عبر الآلية الافتراضية (إعدادات PowerPoint/Aspose.Slides الافتراضية). تلك القيمة المحلولة تصبح جزءًا من لقطة EffectiveData.
من قيمة الخط الفعالة، هل يمكنني معرفة أي مستوى قدم الحجم أو نوع الخط؟
ليس بشكل مباشر. EffectiveData تُعيد القيمة النهائية. لتحديد المصدر، راجع القيم المحلية في الجزء/الفقرة/إطار النص والأنماط النصية في التخطيط/الرئيسية/العرض لترى أين تظهر التعريف الأول الصريح.
لماذا تبدو قيم EffectiveData أحيانًا مطابقة للقيم المحلية؟
لأن القيمة المحلية انتهت بأنها النهائية (لم يتم الحاجة إلى وراثة من مستوى أعلى). في مثل هذه الحالات، تتطابق القيمة الفعالة مع القيمة المحلية.
متى يجب استخدام الخصائص الفعالة، ومتى أعمل فقط مع الخصائص المحلية؟
استخدم EffectiveData عندما تحتاج إلى النتيجة “كما تُعرض” بعد تطبيق جميع الوراثات (مثلاً لمطابقة الألوان، المسافات البادئة، أو الأحجام). إذا كنت بحاجة إلى تغيير التنسيق على مستوى محدد، عدّل الخصائص المحلية ثم، إذا لزم الأمر، أعد قراءة EffectiveData للتحقق من النتيجة.