إدارة العلامات والبيانات المخصصة في العروض التقديمية على Android

تخزين البيانات في ملفات العرض

ملفات PPTX—العناصر ذات الامتداد .pptx—تُخزن بتنسيق PresentationML، وهو جزء من مواصفة Office Open XML. يعرّف تنسيق Office Open XML البنية للبيانات الموجودة في العروض التقديمية.

مع اعتبار slide أحد العناصر في العروض، يحتوي slide part على محتوى شريحة واحدة. يُسمح لجزء الشريحة بوجود علاقات صريحة مع أجزاء متعددة—مثل User Defined Tags—المعرَّفة وفقًا لمعيار ISO/IEC 29500.

يمكن للبيانات المخصصة (المحدّدة لعروض تقديمية) أو للمستخدم أن توجد كعلامات (ITagCollection) وCustomXmlParts (ICustomXmlPartCollection).

الحصول على قيم العلامات

في الشرائح، تقابل العلامة طريقة IDocumentProperties.getKeywords() وطريقة IDocumentProperties.setKeywords() . يوضح هذا المثال البرمجي كيفية الحصول على قيمة العلامة باستخدام Aspose.Slides for Android عبر Java لـ Presentation:

Presentation pres = new Presentation("pres.pptx");
try{
    String keywords = pres.getDocumentProperties().getKeywords();
} finally {
    if (pres != null) pres.dispose();
}

إضافة علامات إلى العروض التقديمية

يسمح Aspose.Slides لك بإضافة علامات إلى العروض التقديمية. تتكوّن العلامة عادةً من عنصرين:

  • اسم الخاصية المخصّصة - MyTag
  • قيمة الخاصية المخصّصة - My Tag Value

إذا احتجت إلى تصنيف بعض العروض وفق قاعدة أو خاصية معينة، فقد تستفيد من إضافة العلامات إلى تلك العروض. على سبيل المثال، إذا أردت تجميع كل العروض من دول أمريكا الشمالية معًا، يمكنك إنشاء علامة “North American” ثم تعيين الدول ذات الصلة (الولايات المتحدة، المكسيك، وكندا) كقيم.

يوضح هذا المثال البرمجي كيفية إضافة علامة إلى Presentation باستخدام Aspose.Slides for Android عبر Java:

Presentation pres = new Presentation("pres.pptx");
try {
    ITagCollection tags = pres.getCustomData().getTags();
    pres.getCustomData().getTags().set_Item("MyTag", "My Tag Value");
} finally {
    if (pres != null) pres.dispose();
}

يمكن أيضًا تعيين العلامات لـ Slide:

Presentation pres = new Presentation();
try {
    ISlide slide = pres.getSlides().get_Item(0);
    slide.getCustomData().getTags().set_Item("tag", "value");
} finally {
    if (pres != null) pres.dispose();
}

أو لأي Shape فردي:

Presentation pres = new Presentation();
try {
    ISlide slide = pres.getSlides().get_Item(0);
    IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 10, 10, 100, 50);
    shape.getTextFrame().setText("My text");
    shape.getCustomData().getTags().set_Item("tag", "value");
} finally {
    if (pres != null) pres.dispose();
}

القيود

العلامات التي تُضاف عبر مجموعة بيانات العلامات المخصّصة باستخدام getCustomData().getTags() تُخزن فقط داخل ملف PowerPoint. ولا يتم نقلها إلى هيكل علامات PDF عند تصدير العرض إلى PDF. وبالتالي، لا يمكن استرداد معرف مخصّص مُعيّن كعلامة من ملف PDF المُعلام.

الحل البديل: يمكنك تخزين معرف مخصّص في نص بديل للكائن (مثال، shape.setAlternativeText("MyId")). بعد التصدير إلى PDF، قد يظهر النص البديل في هيكل علامات PDF.

الأسئلة المتكررة

هل يمكنني إزالة جميع العلامات من عرض تقديمي أو شريحة أو شكل في عملية واحدة؟

نعم. تدعم tag collection عملية clear التي تحذف جميع أزواج المفتاح–القيمة دفعة واحدة.

كيف أحذف علامة واحدة باسمها دون التكرار عبر المجموعة بالكامل؟

استخدم عملية remove(name) على tag collection لحذف العلامة بمفتاحها.

كيف يمكنني استرجاع القائمة الكاملة لأسماء العلامات للتحليل أو التصفية؟

استخدم getNamesOfTags على tag collection؛ تُعيد مصفوفة تحتوي على جميع أسماء العلامات.