Python में PowerPoint प्रस्तुतियों में संवेदनशीलता लेबल प्रबंधित करें
सारांश
Microsoft Purview संवेदनशीलता लेबल संगठनों को दस्तावेज़ों को वर्गीकृत करने और उनका शासन करने में मदद करते हैं। स्वचालित प्रस्तुति प्रोसेसिंग के दौरान, एक एप्लिकेशन को मौजूदा लेबल को बरकरार रखना, नीति द्वारा चयनित लेबल लागू करना, उसकी स्थिति अपडेट करना, या पुराने Microsoft Information Protection (MIP) वर्कफ़्लो द्वारा लिखे गए लेबल मेटाडेटा को माइग्रेट करना पड़ सकता है।
Aspose.Slides for Python via .NET आधुनिक संवेदनशीलता लेबल मेटाडेटा को Presentation.sensitivity_labels के माध्यम से उजागर करता है। यह प्रॉपर्टी एक SensitivityLabelCollection लौटाती है जिसे प्रस्तुति को PPTX के रूप में सहेजने से पहले निरीक्षण और संशोधित किया जा सकता है।
नोट
संवेदनशीलता लेबल पहचानकर्ता और नीति जानकारी आपके Microsoft Purview कॉन्फ़िगरेशन द्वारा परिभाषित होती है। अपने वातावरण में लेबल उपलब्धता और नीति आवश्यकताओं को सत्यापित करने के बाद ही मेटाडेटा जोड़ें या माइग्रेट करें। SensitivityLabel.content_mark_types मान केवल लेबल के साथ जुड़े सामग्री चिह्नों का वर्णन करते हैं; वे स्वयं स्लाइड पर दिखाई देने वाला पाठ या आकार नहीं जोड़ते हैं।संवेदनशीलता लेबल गुण समझें
प्रत्येक SensitivityLabel में निम्नलिखित मेटाडेटा शामिल होते हैं:
| प्रॉपर्टी | उद्देश्य |
|---|---|
| SensitivityLabel.id | Purview नीति में संवेदनशीलता लेबल को पहचानता है। |
| SensitivityLabel.site_id | लेबल नीति से जुड़ी साइट को पहचानता है। |
| SensitivityLabel.is_enabled | दर्शाता है कि लेबल सक्षम है या नहीं। |
| SensitivityLabel.is_removed | दर्शाता है कि लेबल हटा दिया गया है। जब हटाने की स्थिति मेटाडेटा में बरकरार रखनी हो, तो इस प्रॉपर्टी को True सेट करें। |
| SensitivityLabel.assignment_method_type | यह निर्दिष्ट करता है कि लेबल स्वचालित रूप से लागू किया गया था या उपयोगकर्ता निर्णय के आधार पर। |
| SensitivityLabel.content_mark_types | लेबल से जुड़े सामग्री चिह्न प्रकारों की सूची देता है। |
SensitivityLabelAssignmentType एन्नुमरेशन बताता है कि लेबल कैसे असाइन किया गया:
- SensitivityLabelAssignmentType.STANDARD डिफ़ॉल्ट या स्वचालित रूप से लागू लेबल को दर्शाता है।
- SensitivityLabelAssignmentType.PRIVILEGED उपयोगकर्ता निर्णय के माध्यम से लागू किए गए लेबल को दर्शाता है, जिसमें मैन्युअल, अनुशंसित और अनिवार्य लेबल शामिल हैं।
SensitivityLabelContentType एन्नुमरेशन लेबल से जुड़े चिह्न को पहचानता है:
| मान | अर्थ |
|---|---|
| SensitivityLabelContentType.NONE | लेबल डिफ़ॉल्ट रूप से या स्वचालित रूप से लागू किया गया था। |
| SensitivityLabelContentType.HEADER | हेडर सामग्री चिह्न लेबल से जुड़ा है। |
| SensitivityLabelContentType.FOOTER | फुटर सामग्री चिह्न लेबल से जुड़ा है। |
| SensitivityLabelContentType.WATERMARK | वॉटरमार्क सामग्री चिह्न लेबल से जुड़ा है। |
| SensitivityLabelContentType.ENCRYPTION | एन्क्रिप्शन सुरक्षा लेबल से जुड़ी है। |
एक लेबल के साथ कई चिह्न प्रकार जुड़े हो सकते हैं।
मौजूदा संवेदनशीलता लेबल सूचीबद्ध करें
Presentation.sensitivity_labels से आधुनिक लेबल संग्रह पढ़ें और उसे परिक्रमा करें। निम्नलिखित उदाहरण प्रत्येक लेबल के सभी प्रॉपर्टी और सामग्री चिह्न सूचीबद्ध करता है:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
sensitivity_labels = presentation.sensitivity_labels
for sensitivity_label in sensitivity_labels:
print("Label ID:", sensitivity_label.id)
print("Site ID:", sensitivity_label.site_id)
print("Enabled:", sensitivity_label.is_enabled)
print("Removed:", sensitivity_label.is_removed)
print("Assignment method:", sensitivity_label.assignment_method_type)
for content_mark_type in sensitivity_label.content_mark_types:
print("Content marking:", content_mark_type)
सामग्री चिह्न के साथ संवेदनशीलता लेबल जोड़ें
लेबल पहचानकर्ता, साइट पहचानकर्ता, सक्षम स्थिति और असाइनमेंट मेथड के साथ SensitivityLabelCollection.add का उपयोग करें। साइट पहचानकर्ता को Python uuid.UUID ऑब्जेक्ट के रूप में पास करें। जब मेथड नया SensitivityLabel लौटाए, तो आवश्यक चिह्न मानों को SensitivityLabel.content_mark_types में जोड़ें।
निम्न उदाहरण फ़ुटर और वॉटरमार्क चिह्नों के साथ मैन्युअल रूप से चयनित लेबल जोड़ता है, और फिर परिणाम को PPTX के रूप में सहेजता है:
import uuid
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
sensitivity_labels = presentation.sensitivity_labels
label_identifier = "{11111111-2222-3333-4444-555555555555}"
site_identifier = uuid.UUID("aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee")
is_enabled = True
assignment_method = slides.SensitivityLabelAssignmentType.PRIVILEGED
sensitivity_label = sensitivity_labels.add(
label_identifier,
site_identifier,
is_enabled,
assignment_method
)
sensitivity_label.content_mark_types.append(slides.SensitivityLabelContentType.FOOTER)
sensitivity_label.content_mark_types.append(slides.SensitivityLabelContentType.WATERMARK)
presentation.save("presentation_with_label.pptx", slides.export.SaveFormat.PPTX)
संवेदनशीलता लेबल अपडेट करें
SensitivityLabel प्रॉपर्टी पढ़ी/लिखी जा सकती हैं, सिवाय इसके कि SensitivityLabel.content_mark_types द्वारा लौटाई गई सूची को उसकी सूची ऑपरेशन्स के माध्यम से संशोधित किया जाता है। आवश्यक लेबल ढूँढने के बाद, आप उसकी पहचानकर्ता, साइट पहचानकर्ता, सक्षम स्थिति, असाइनमेंट मेथड, हटाने की स्थिति और सामग्री चिह्न प्रकारों को अपडेट कर सकते हैं। परिवर्तन टिकाने के लिए प्रस्तुति को सहेजें।
निम्न उदाहरण पहले लेबल की सक्षम स्थिति और असाइनमेंट मेथड को अपडेट करता है:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
sensitivity_labels = presentation.sensitivity_labels
if sensitivity_labels.count > 0:
sensitivity_label = sensitivity_labels[0]
sensitivity_label.is_enabled = True
sensitivity_label.assignment_method_type = (
slides.SensitivityLabelAssignmentType.PRIVILEGED
)
presentation.save("presentation_with_updated_label.pptx", slides.export.SaveFormat.PPTX)
लेबल को हटाए रूप में चिह्नित करें
लेबल हटाए जाने की तथ्य को बरकरार रखने के लिए, लेबल ढूँढें और SensitivityLabel.is_removed को True सेट करें। इससे लेबल एंट्री बरकरार रहती है जबकि उसकी हटाने की स्थिति रिकॉर्ड होती है। यदि आपको आधुनिक संग्रह से एंट्री को पूरी तरह हटाना है, तो SensitivityLabelCollection.remove_at का उपयोग करें; सभी एंट्री को हटाने के लिए SensitivityLabelCollection.clear का उपयोग करें।
निम्न उदाहरण एक विशिष्ट लेबल को हटाए रूप में चिह्नित करता है और अद्यतन प्रस्तुति को सहेजता है:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
sensitivity_labels = presentation.sensitivity_labels
target_label_identifier = "{11111111-2222-3333-4444-555555555555}"
for sensitivity_label in sensitivity_labels:
identifiers_match = (
sensitivity_label.id.casefold() == target_label_identifier.casefold()
)
if identifiers_match:
sensitivity_label.is_removed = True
break
presentation.save("presentation_with_removed_label.pptx", slides.export.SaveFormat.PPTX)
पुराने MIP संवेदनशीलता लेबल पढ़ें और माइग्रेट करें
पुराने MIP-आधारित वर्कफ़्लो आधुनिक लेबल संग्रह के बजाय कस्टम डॉक्यूमेंट प्रॉपर्टीज़ में संवेदनशीलता लेबल मेटाडेटा संग्रहीत कर सकते हैं। इस मेटाडेटा को DocumentProperties.get_sensitivity_labels से पढ़ें। यह मेथड लेगेसी कस्टम प्रॉपर्टीज़ को पार्स करता है और SensitivityLabel ऑब्जेक्ट लौटाता है।
मेटाडेटा माइग्रेट करने के लिए, प्रत्येक प्राप्त लेबल को SensitivityLabelCollection.add के माध्यम से आधुनिक SensitivityLabelCollection में जोड़ें। चूँकि डुप्लिकेट लेबल पहचानकर्ता जोड़ने पर अपवाद उत्पन्न होता है, उदाहरण प्रत्येक लेबल को कॉपी करने से पहले लक्ष्य संग्रह की जाँच करता है। आप यह सत्यापित करने के लिए अतिरिक्त वैधता जोड़ सकते हैं कि प्रत्येक लेगेसी लेबल अभी भी वर्तमान Purview नीति में उपस्थित है।
import aspose.slides as slides
with slides.Presentation("presentation_with_legacy_labels.pptx") as presentation:
legacy_sensitivity_labels = (
presentation.document_properties.get_sensitivity_labels()
)
modern_sensitivity_labels = presentation.sensitivity_labels
for legacy_sensitivity_label in legacy_sensitivity_labels:
label_already_exists = False
for modern_sensitivity_label in modern_sensitivity_labels:
label_already_exists = (
modern_sensitivity_label.id.casefold()
== legacy_sensitivity_label.id.casefold()
)
if label_already_exists:
break
if not label_already_exists:
modern_sensitivity_labels.add(legacy_sensitivity_label)
presentation.save("presentation_with_modern_labels.pptx", slides.export.SaveFormat.PPTX)
माइग्रेशन पार्स किए गए लेबल ऑब्जेक्ट को आधुनिक संग्रह में कॉपी करता है। इसे सभी कस्टम डॉक्यूमेंट प्रॉपर्टीज़ को साफ़ करने की आवश्यकता नहीं है, इसलिए अप्रासंगिक डॉक्यूमेंट मेटाडेटा अपरिवर्तित रहता है। आधुनिक लेबल मेटाडेटा को PPTX फ़ाइल में लिखने के लिए Presentation.save को SaveFormat.PPTX के साथ उपयोग करें।
अक्सर पूछे जाने वाले प्रश्न
क्या सामग्री चिह्न प्रकार जोड़ने से स्लाइड में दृश्यमान हेडर, फुटर या वॉटरमार्क बनता है?
नहीं। SensitivityLabel.content_mark_types के माध्यम से जोड़े गए मान केवल लेबल से जुड़े चिह्नों का वर्णन करते हैं। वे प्रस्तुति में दृश्यमान पाठ या आकार नहीं बनाते। यदि आपके वर्कफ़्लो को इन चिह्नों को रेंडर करना आवश्यक है, तो संबंधित स्लाइड सामग्री को अलग से जोड़ें।
लेबल को हटाए रूप में चिह्नित करने और संग्रह से इसे हटाने में क्या अंतर है?
SensitivityLabel.is_removed को True सेट करने से लेबल एंट्री बरकरार रहती है और उसकी हटाने की स्थिति रिकॉर्ड होती है। SensitivityLabelCollection.remove_at को कॉल करने से एंट्री आधुनिक संग्रह से पूरी तरह हट जाती है। अपनी संगठन की मेटाडेटा प्रतिधारण आवश्यकताओं के अनुसार उपयुक्त ऑपरेशन चुनें।
क्या एक प्रस्तुति में लेगेसी MIP मेटाडेटा और आधुनिक संवेदनशीलता लेबल दोनों हो सकते हैं?
हां। लेगेसी लेबल कस्टम डॉक्यूमेंट प्रॉपर्टीज़ में बने रह सकते हैं, जबकि आधुनिक लेबल Presentation.sensitivity_labels के माध्यम से उपलब्ध होते हैं। लेगेसी मेटाडेटा पढ़ने और केवल वैध लेबल को माइग्रेट करने के लिए DocumentProperties.get_sensitivity_labels का उपयोग करें।
जब समान पहचानकर्ता वाले लेबल को कई बार जोड़ा जाता है तो क्या होता है?
SensitivityLabelCollection.add तब अपवाद फेंकता है जब संग्रह में पहले से वही पहचानकर्ता वाला लेबल मौजूद हो। लेबल जोड़ने या माइग्रेट करने से पहले मौजूदा SensitivityLabel.id मानों की जाँच करें।
अपडेटेड संवेदनशीलता लेबल को बरकरार रखने के लिए कौन सा आउटपुट फ़ॉर्मेट उपयोग किया जाना चाहिए?
उपरोक्त उदाहरणों में दिखाए अनुसार प्रस्तुति को PPTX के रूप में सहेजें, इसे करने के लिए Presentation.save को SaveFormat.PPTX के साथ कॉल करें।