إدارة العلامات والبيانات المخصصة في العروض باستخدام Java
نظرة عامة
تشرح هذه المقالة كيفية عمل Aspose.Slides مع العلامات والبيانات المخصصة في عروض PowerPoint. وهي تلخص باختصار كيفية تخزين البيانات في ملفات PPTX، وتوضح أن البيانات الخاصة بالعرض يمكن أن توجد كعلامات وأجزاء XML مخصصة، وتصف العلامات بأنها أزواج من السلاسل المفتاحية والقيمة.
كما تُظهر كيفية قراءة قيم العلامات وكيفية إضافة علامات إلى عرض تقديمي أو شريحة فردية أو شكل. بالإضافة إلى ذلك، تغطي المقالة مهام إدارة العلامات الشائعة مثل مسح جميع العلامات، وإزالة علامة حسب الاسم، واسترجاع قائمة بأسماء العلامات.
تخزين البيانات في ملفات العرض
ملفات PPTX—العناصر ذات الامتداد .pptx—مخزنة بتنسيق PresentationML، وهو جزء من مواصفة Office Open XML. يحدد تنسيق Office Open XML بنية البيانات المحتواة في العروض التقديمية.
مع اعتبار الشريحة أحد العناصر في العروض، يحتوي جزء الشريحة على محتوى شريحة واحدة. يُسمح لجزء الشريحة أن يكون له علاقات صريحة مع العديد من الأجزاء—مثل العلامات المعرفة من قبل المستخدم—المحددة في ISO/IEC 29500.
يمكن أن تكون البيانات المخصصة (الخاصة بعرض تقديمي) أو التي يضيفها المستخدم موجودة كعلامات (ITagCollection) وأجزاء XML مخصصة (ICustomXmlPartCollection).
جلب قيم العلامات
في الشرائح، تت对应 العلامة إلى طريقتي IDocumentProperties.getKeywords() و IDocumentProperties.setKeywords(). يعرض هذا المثال كيفية جلب قيمة علامة باستخدام Aspose.Slides for 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 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.
FAQ
هل يمكنني إزالة جميع العلامات من عرض تقديمي أو شريحة أو شكل في عملية واحدة؟
نعم. يدعم tag collection عملية clear التي تحذف جميع أزواج المفتاح‑القيمة دفعة واحدة.
كيف أحذف علامة واحدة حسب اسمها دون遍历 (التكرار) عبر المجموعة بالكامل؟
استخدم عملية Remove(name) على tag collection لحذف العلامة بمفتاحها.
كيف يمكنني استرجاع القائمة الكاملة لأسماء العلامات للتحليل أو التصفية؟
استخدم getNamesOfTags على tag collection، حيث تُعيد مصفوفة تحتوي على جميع أسماء العلامات.