إدارة ملصقات الحساسية في عروض PowerPoint التقديمية باستخدام JavaScript
نظرة عامة
تساعد ملصقات الحساسية في Microsoft Purview المؤسسات على تصنيف المستندات وإدارتها. أثناء معالجة العروض التقديمية تلقائيًا، قد تحتاج تطبيقات إلى الحفاظ على ملصق موجود، أو تطبيق ملصق يحدده سياسة، أو تحديث حالته، أو نقل بيانات الميتا الخاصة بالملصق التي كتبتها سير عمل Microsoft Information Protection (MIP) أقدم.
يُظهر Aspose.Slides for Node.js via Java بيانات ملصق الحساسية الحديثة عبر Presentation.getSensitivityLabels. تُعيد هذه الطريقة مجموعة SensitivityLabelCollection يمكن فحصها وتعديلها قبل حفظ العرض التقديمي كملف PPTX.
ملاحظة
معرفات ملصق الحساسية ومعلومات السياسة تُحددها تكوين Microsoft Purview الخاص بك. تحقق من توفر الملصق ومتطلبات السياسة في بيئتك قبل إضافة أو ترحيل البيانات الوصفية. قيم SensitivityLabel.getContentMarkTypes تصف العلامات المرتبطة بالملصق؛ هي لا تضيف نصًا أو أشكالًا مرئية إلى الشرائح بحد ذاتها.فهم خصائص ملصق الحساسية
كل SensitivityLabel يحتوي على البيانات الوصفية التالية:
| الطرق | الغرض |
|---|---|
| SensitivityLabel.getId و SensitivityLabel.setId | الحصول على معرف ملصق الحساسية في سياسة Purview أو تعيينه. |
| SensitivityLabel.getSiteId و SensitivityLabel.setSiteId | الحصول على موقع الويب المرتبط بسياسة الملصق أو تعيينه. |
| SensitivityLabel.isEnabled و SensitivityLabel.setEnabled | معرفة ما إذا كان الملصق مفعلاً أو تعيين ذلك. |
| SensitivityLabel.isRemoved و SensitivityLabel.setRemoved | معرفة ما إذا كان الملصق قد أُزيل أو تعيين ذلك. عيّن القيمة إلى true عندما يجب الاحتفاظ بحالة الإزالة في البيانات الوصفية. |
| SensitivityLabel.getAssignmentMethodType و SensitivityLabel.setAssignmentMethodType | معرفة ما إذا تم تطبيق الملصق تلقائيًا أو عبر قرار المستخدم أو تعيين ذلك. |
| SensitivityLabel.getContentMarkTypes | الحصول على أنواع العلامات المرتبطة بالملصق. |
تحدد الفئة SensitivityLabelAssignmentType طريقة تعيين الملصق:
- SensitivityLabelAssignmentType.Standard يمثل ملصقًا افتراضيًا أو تم تطبيقه تلقائيًا.
- SensitivityLabelAssignmentType.Privileged يمثل ملصقًا تم تطبيقه عبر قرار المستخدم، بما في ذلك الملصقات المطبقة يدويًا، والملصقات الموصى بها، والملصقات الإلزامية.
تحدد الفئة SensitivityLabelContentType العلامة المرتبطة بالملصق:
| القيمة | المعنى |
|---|---|
| SensitivityLabelContentType.None | تم تطبيق الملصق افتراضيًا أو تلقائيًا. |
| SensitivityLabelContentType.Header | هناك علامة محتوى رأسية مرتبطة بالملصق. |
| SensitivityLabelContentType.Footer | هناك علامة محتوى تذييل مرتبطة بالملصق. |
| SensitivityLabelContentType.Watermark | هناك علامة محتوى علامة مائية مرتبطة بالملصق. |
| SensitivityLabelContentType.Encryption | هناك حماية تشفير مرتبطة بالملصق. |
يمكن ربط أنواع علامات متعددة بملصق واحد.
قائمة ملصقات الحساسية الموجودة
اقرأ مجموعة الملصقات الحديثة من Presentation.getSensitivityLabels وقم بتعدادها. المثال التالي يسرد كل خاصية وعلامة محتوى مخزنة لكل ملصق:
const aspose = { slides: require("aspose.slides.via.java") };
const presentation = new aspose.slides.Presentation("presentation.pptx");
try {
const sensitivityLabels = presentation.getSensitivityLabels();
const labelCount = sensitivityLabels.getCount();
for (let labelIndex = 0; labelIndex < labelCount; labelIndex++) {
const sensitivityLabel = sensitivityLabels.get_Item(labelIndex);
const labelIdentifier = sensitivityLabel.getId();
const siteIdentifier = sensitivityLabel.getSiteId();
const isEnabled = sensitivityLabel.isEnabled();
const isRemoved = sensitivityLabel.isRemoved();
const assignmentMethod = sensitivityLabel.getAssignmentMethodType();
console.log("Label ID: " + labelIdentifier);
console.log("Site ID: " + siteIdentifier);
console.log("Enabled: " + isEnabled);
console.log("Removed: " + isRemoved);
console.log("Assignment method: " + assignmentMethod);
const contentMarkTypes = sensitivityLabel.getContentMarkTypes();
const contentMarkCount = contentMarkTypes.size();
for (let contentMarkIndex = 0; contentMarkIndex < contentMarkCount; contentMarkIndex++) {
const contentMarkType = contentMarkTypes.get_Item(contentMarkIndex);
console.log("Content marking: " + contentMarkType);
}
}
} finally {
presentation.dispose();
}
إضافة ملصق حساسية مع علامة محتوى
استخدم SensitivityLabelCollection.add مع معرّف الملصق، ومعرّف الموقع، وحالة التفعيل، وطريقة التعيين. بعد إرجاع الطريقة كائن SensitivityLabel الجديد، أضف قيم العلامات المطلوبة عبر القائمة التي تُعيدها SensitivityLabel.getContentMarkTypes.
المثال التالي يضيف ملصقًا تم اختياره يدويًا مرتبطًا بعلامات تذييل وعلامة مائية، ثم يحفظ النتيجة كملف PPTX:
const aspose = { slides: require("aspose.slides.via.java") };
const java = require("java");
const presentation = new aspose.slides.Presentation("presentation.pptx");
try {
const sensitivityLabels = presentation.getSensitivityLabels();
const labelIdentifier = "{11111111-2222-3333-4444-555555555555}";
const siteIdentifier = java.callStaticMethodSync(
"java.util.UUID",
"fromString",
"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee");
const isEnabled = true;
const assignmentMethod = aspose.slides.SensitivityLabelAssignmentType.Privileged;
const sensitivityLabel = sensitivityLabels.add(
labelIdentifier,
siteIdentifier,
isEnabled,
assignmentMethod);
const contentMarkTypes = sensitivityLabel.getContentMarkTypes();
contentMarkTypes.addItem(aspose.slides.SensitivityLabelContentType.Footer);
contentMarkTypes.addItem(aspose.slides.SensitivityLabelContentType.Watermark);
presentation.save("presentation_with_label.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
تحديث ملصق الحساسية
قِيَم SensitivityLabel قابلة للقراءة والكتابة، باستثناء القائمة التي تُعيدها SensitivityLabel.getContentMarkTypes التي تُعدَّل عبر عمليات القائمة الخاصة بها. بعد تحديد الملصق المطلوب، يمكنك تحديث معرفه، ومعرّف الموقع، وحالة التفعيل، وطريقة التعيين، وحالة الإزالة، وأنواع علامات المحتوى. احفظ العرض التقديمي لتثبيت التغييرات.
المثال التالي يُحدِّث حالة التفعيل وطريقة التعيين للملصق الأول:
const aspose = { slides: require("aspose.slides.via.java") };
const presentation = new aspose.slides.Presentation("presentation.pptx");
try {
const sensitivityLabels = presentation.getSensitivityLabels();
const labelCount = sensitivityLabels.getCount();
if (labelCount > 0) {
const sensitivityLabel = sensitivityLabels.get_Item(0);
sensitivityLabel.setEnabled(true);
sensitivityLabel.setAssignmentMethodType(
aspose.slides.SensitivityLabelAssignmentType.Privileged);
}
presentation.save("presentation_with_updated_label.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
وضع علامة إزالة على ملصق الحساسية
للحفاظ على حقيقة أن الملصق أُزيل، ابحث عن الملصق واستدعِ SensitivityLabel.setRemoved مع true. سيبقى الإدخال موجودًا مع تسجيل حالة الإزالة. إذا أردت حذف إدخال من المجموعة الحديثة، استخدم SensitivityLabelCollection.removeAt؛ واستخدم SensitivityLabelCollection.clear لحذف جميع الإدخالات.
المثال التالي يضع علامة إزالة على ملصق محدد ويحفظ العرض المحدث:
const aspose = { slides: require("aspose.slides.via.java") };
const presentation = new aspose.slides.Presentation("presentation.pptx");
try {
const sensitivityLabels = presentation.getSensitivityLabels();
const targetLabelIdentifier = "{11111111-2222-3333-4444-555555555555}";
const labelCount = sensitivityLabels.getCount();
for (let labelIndex = 0; labelIndex < labelCount; labelIndex++) {
const sensitivityLabel = sensitivityLabels.get_Item(labelIndex);
const labelIdentifier = sensitivityLabel.getId();
const isTargetLabel = labelIdentifier.toLowerCase() === targetLabelIdentifier.toLowerCase();
if (isTargetLabel) {
sensitivityLabel.setRemoved(true);
break;
}
}
presentation.save("presentation_with_removed_label.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
قراءة وترحيل ملصقات حساسية MIP القديمة
يمكن لسير عمل MIP القديم تخزين بيانات ملصق الحساسية في خصائص مستند مخصصة بدلاً من مجموعة الملصقات الحديثة. اقرأ تلك البيانات عبر DocumentProperties.getSensitivityLabels. تقوم الطريقة بتحليل الخصائص المخصصة القديمة وإرجاع مصفوفة من كائنات SensitivityLabel.
لترحيل البيانات الوصفية، أضف كل ملصق تم إرجاعه إلى مجموعة SensitivityLabelCollection الحديثة عبر SensitivityLabelCollection.add. نظرًا لأن إضافة معرف ملصق مكرر يرفع استثناءً، يتحقق المثال من المجموعة الوجهة قبل نسخ كل ملصق. يمكنك إضافة تحقق إضافي للتأكد من أن كل ملصق قديم لا يزال موجودًا في سياسة Purview الحالية.
const aspose = { slides: require("aspose.slides.via.java") };
const presentation = new aspose.slides.Presentation("presentation_with_legacy_labels.pptx");
try {
const legacySensitivityLabels = presentation.getDocumentProperties().getSensitivityLabels();
const modernSensitivityLabels = presentation.getSensitivityLabels();
for (let legacyLabelIndex = 0; legacyLabelIndex < legacySensitivityLabels.length; legacyLabelIndex++) {
const legacySensitivityLabel = legacySensitivityLabels[legacyLabelIndex];
const legacyLabelIdentifier = legacySensitivityLabel.getId();
const modernLabelCount = modernSensitivityLabels.getCount();
let labelAlreadyExists = false;
for (let modernLabelIndex = 0; modernLabelIndex < modernLabelCount; modernLabelIndex++) {
const modernSensitivityLabel = modernSensitivityLabels.get_Item(modernLabelIndex);
const modernLabelIdentifier = modernSensitivityLabel.getId();
labelAlreadyExists =
modernLabelIdentifier.toLowerCase() === legacyLabelIdentifier.toLowerCase();
if (labelAlreadyExists) {
break;
}
}
if (!labelAlreadyExists) {
modernSensitivityLabels.add(legacySensitivityLabel);
}
}
presentation.save("presentation_with_modern_labels.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
الترحيل ينسخ كائنات الملصق التي تم تحليلها إلى المجموعة الحديثة. لا يتطلب مسح جميع الخصائص المخصصة للمستند، لذا تبقى البيانات الوصفية غير ذات الصلة سليمة. استخدم Presentation.save مع SaveFormat.Pptx لكتابة بيانات الملصق الحديثة إلى ملف PPTX.
الأسئلة المتكررة
هل إنشاء نوع علامة محتوى يضيف رأسًا أو تذييلًا أو علامة مائية مرئية إلى الشرائح؟
لا. القيم التي تُضاف عبر القائمة التي تُعيدها SensitivityLabel.getContentMarkTypes تصف العلامات المرتبطة بملصق الحساسية. هي لا تُنشئ نصًا أو أشكالًا مرئية في العرض التقديمي. أضف محتوى الشريحة المناسب منفصلًا إذا كان سير عملك بحاجة إلى عرض تلك العلامات.
ما الفرق بين وضع علامة إزالة على الملصق وحذفّه من المجموعة؟
استدعاء SensitivityLabel.setRemoved مع true يُبقي إدخال الملصق ويسجل حالة الإزالة. استدعاء SensitivityLabelCollection.removeAt يحذف الإدخال من المجموعة الحديثة. اختر العملية التي تتماشى مع متطلبات احتفاظ مؤسستك بالبيانات الوصفية.
هل يمكن للعرض التقديمي أن يحتوي على بيانات ميتا MIP قديمة وملصقات حساسية حديثة في آن واحد؟
نعم. يمكن أن تبقى الملصقات القديمة في خصائص المستند المخصصة بينما تتوفر الملصقات الحديثة عبر Presentation.getSensitivityLabels. استخدم DocumentProperties.getSensitivityLabels لقراءة البيانات القديمة وترحيل الملصقات الصالحة التي لا توجد بالفعل في المجموعة الحديثة.
ماذا يحدث إذا أُضيف ملصق بنفس المعرف أكثر من مرة؟
SensitivityLabelCollection.add يرفع استثناءً عندما تكون المجموعة تحتوي بالفعل على ملصق بنفس المعرف. تحقق من القيم الموجودة التي تُعيدها SensitivityLabel.getId قبل إضافة أو ترحيل الملصقات.
أي تنسيق إخراج يجب استخدامه للحفاظ على ملصقات الحساسية المحدثة؟
احفظ العرض التقديمي كملف PPTX باستدعاء Presentation.save مع SaveFormat.Pptx، كما هو موضح في الأمثلة أعلاه.