Sensitivitätslabels in PowerPoint-Präsentationen mit Python verwalten
Übersicht
Microsoft Purview Sensitivitätslabels helfen Organisationen, Dokumente zu klassifizieren und zu verwalten. Während der automatischen Präsentationsverarbeitung muss eine Anwendung ein vorhandenes Label beibehalten, ein von einer Richtlinie ausgewähltes Label anwenden, dessen Zustand aktualisieren oder Metadaten eines von einem älteren Microsoft Information Protection (MIP)‑Workflow geschriebenen Labels migrieren.
Aspose.Slides für Python via .NET stellt moderne Sensitivitätslabel‑Metadaten über Presentation.sensitivity_labels bereit. Diese Eigenschaft liefert eine SensitivityLabelCollection, die vor dem Speichern der Präsentation als PPTX eingesehen und geändert werden kann.
Hinweis
Sensitivitätslabel‑Kennungen und Richtlinieninformationen werden durch Ihre Microsoft Purview‑Konfiguration definiert. Validieren Sie die Verfügbarkeit von Labels und Richtlinienanforderungen in Ihrer Umgebung, bevor Sie Metadaten hinzufügen oder migrieren. Die Werte von SensitivityLabel.content_mark_types beschreiben die mit einem Label verbundenen Inhaltskennzeichnungen; sie erzeugen nicht automatisch sichtbaren Text oder Formen auf Folien.Sensitivitätslabel‑Eigenschaften verstehen
Jedes SensitivityLabel enthält die folgenden Metadaten:
| Eigenschaft | Zweck |
|---|---|
| SensitivityLabel.id | Identifiziert das Sensitivitätslabel in der Purview‑Richtlinie. |
| SensitivityLabel.site_id | Identifiziert die Site, die mit der Label‑Richtlinie verknüpft ist. |
| SensitivityLabel.is_enabled | Gibt an, ob das Label aktiviert ist. |
| SensitivityLabel.is_removed | Gibt an, dass das Label entfernt wurde. Setzen Sie diese Eigenschaft auf True, wenn der Entfernungszustand in den Metadaten erhalten bleiben muss. |
| SensitivityLabel.assignment_method_type | Gibt an, ob das Label automatisch oder durch eine Benutzerentscheidung angewendet wurde. |
| SensitivityLabel.content_mark_types | Listet die Inhalt‑Kennzeichnungstypen auf, die dem Label zugeordnet sind. |
Die Aufzählung SensitivityLabelAssignmentType beschreibt, wie ein Label zugewiesen wurde:
- SensitivityLabelAssignmentType.STANDARD steht für ein Standard‑ oder automatisch angewendetes Label.
- SensitivityLabelAssignmentType.PRIVILEGED steht für ein durch eine Benutzerentscheidung angewendetes Label, einschließlich manuell angewendeter, empfohlener und obligatorischer Labels.
Die Aufzählung SensitivityLabelContentType identifiziert die mit einem Label verbundene Kennzeichnung:
| Wert | Bedeutung |
|---|---|
| SensitivityLabelContentType.NONE | Das Label wurde standardmäßig oder automatisch angewendet. |
| SensitivityLabelContentType.HEADER | Der Header‑Inhaltskennzeichnung ist dem Label zugeordnet. |
| SensitivityLabelContentType.FOOTER | Der Footer‑Inhaltskennzeichnung ist dem Label zugeordnet. |
| SensitivityLabelContentType.WATERMARK | Der Wasserzeichen‑Inhaltskennzeichnung ist dem Label zugeordnet. |
| SensitivityLabelContentType.ENCRYPTION | Der Verschlüsselungsschutz ist dem Label zugeordnet. |
Mehrere Kennzeichnungstypen können einem Label zugeordnet werden.
Vorhandene Sensitivitätslabels auflisten
Lesen Sie die moderne Label‑Sammlung aus Presentation.sensitivity_labels und iterieren Sie darüber. Das folgende Beispiel listet jede Eigenschaft und jede Inhaltskennzeichnung für jedes Label auf:
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)
Ein Sensitivitätslabel mit Inhaltskennzeichnung hinzufügen
Verwenden Sie SensitivityLabelCollection.add mit dem Label‑Identifier, dem Site‑Identifier, dem Aktivierungszustand und der Zuweisungsmethode. Übergeben Sie den Site‑Identifier als Python‑Objekt vom Typ uuid.UUID. Nachdem die Methode das neue SensitivityLabel zurückgegeben hat, hängen Sie die erforderlichen Kennzeichnungswerte an SensitivityLabel.content_mark_types an.
Das folgende Beispiel fügt ein manuell ausgewähltes Label hinzu, das mit Footer‑ und Wasserzeichenkennzeichnungen verknüpft ist, und speichert das Ergebnis als 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)
Ein Sensitivitätslabel aktualisieren
Die Eigenschaften des SensitivityLabel sind les‑/schreibbar, außer dass die von SensitivityLabel.content_mark_types zurückgegebene Liste über ihre Listenoperationen geändert wird. Nachdem Sie das gewünschte Label gefunden haben, können Sie dessen Identifier, Site‑Identifier, Aktivierungszustand, Zuweisungsmethode, Entfernungszustand und Inhaltskennzeichnungstypen aktualisieren. Speichern Sie die Präsentation, um die Änderungen zu übernehmen.
Das folgende Beispiel aktualisiert den Aktivierungszustand und die Zuweisungsmethode des ersten Labels:
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)
Ein Sensitivitätslabel als entfernt markieren
Um festzuhalten, dass ein Label entfernt wurde, finden Sie das Label und setzen Sie SensitivityLabel.is_removed auf True. Dadurch bleibt der Label‑Eintrag erhalten, während sein Entfernungszustand gespeichert wird. Wenn Sie stattdessen einen Eintrag aus der modernen Sammlung löschen möchten, verwenden Sie SensitivityLabelCollection.remove_at; verwenden Sie SensitivityLabelCollection.clear zum Entfernen aller Einträge.
Das folgende Beispiel markiert ein bestimmtes Label als entfernt und speichert die aktualisierte Präsentation:
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)
Legacy‑MIP‑Sensitivitätslabels lesen und migrieren
Ältere, auf MIP basierende Workflows können Sensitivitätslabel‑Metadaten in benutzerdefinierten Dokumenteneigenschaften anstelle der modernen Label‑Sammlung speichern. Lesen Sie diese Metadaten mit DocumentProperties.get_sensitivity_labels. Die Methode parsed die Legacy‑Eigenschaften und gibt SensitivityLabel-Objekte zurück.
Um die Metadaten zu migrieren, fügen Sie jedes zurückgegebene Label über SensitivityLabelCollection.add zur modernen SensitivityLabelCollection hinzu. Da das Hinzufügen eines doppelten Label‑Identifiers eine Ausnahme auslöst, prüft das Beispiel die Zielsammlung, bevor jedes Label kopiert wird. Sie können weitere Validierungen einbauen, um zu bestätigen, dass jedes Legacy‑Label noch in der aktuellen Purview‑Richtlinie existiert.
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)
Die Migration kopiert die geparsten Label‑Objekte in die moderne Sammlung. Sie erfordert nicht das Löschen aller benutzerdefinierten Dokumenteneigenschaften, sodass nicht verwandte Dokumenten‑Metadaten erhalten bleiben. Verwenden Sie Presentation.save mit SaveFormat.PPTX, um die modernen Label‑Metadaten in einer PPTX‑Datei zu schreiben.
FAQ
Erzeugt das Hinzufügen eines Inhaltskennzeichnungstyps einen sichtbaren Header, Footer oder ein Wasserzeichen auf den Folien?
Nein. Werte, die über SensitivityLabel.content_mark_types hinzugefügt werden, beschreiben die mit dem Sensitivitätslabel verbundenen Kennzeichnungen. Sie erzeugen keinen sichtbaren Text oder Formen in der Präsentation. Fügen Sie den entsprechenden Folieninhalt separat hinzu, wenn Ihr Workflow diese Kennzeichnungen rendern muss.
Was ist der Unterschied zwischen dem Markieren eines Labels als entfernt und dem Löschen aus der Sammlung?
Das Setzen von SensitivityLabel.is_removed auf True behält den Label‑Eintrag bei und protokolliert seinen Entfernungszustand. Der Aufruf von SensitivityLabelCollection.remove_at löscht den Eintrag aus der modernen Sammlung. Wählen Sie die Operation, die den Aufbewahrungsanforderungen Ihrer Organisation entspricht.
Kann eine Präsentation sowohl Legacy‑MIP‑Metadaten als auch moderne Sensitivitätslabels enthalten?
Ja. Legacy‑Labels können in benutzerdefinierten Dokumenteneigenschaften verbleiben, während moderne Labels über Presentation.sensitivity_labels verfügbar sind. Verwenden Sie DocumentProperties.get_sensitivity_labels, um die Legacy‑Metadaten zu lesen und nur die gültigen Labels zu migrieren, die noch nicht in der modernen Sammlung vorhanden sind.
Was passiert, wenn ein Label mit demselben Identifier mehrmals hinzugefügt wird?
SensitivityLabelCollection.add löst eine Ausnahme aus, wenn die Sammlung bereits ein Label mit demselben Identifier enthält. Prüfen Sie die vorhandenen SensitivityLabel.id-Werte, bevor Sie Labels hinzufügen oder migrieren.
Welches Ausgabeformat sollte verwendet werden, um aktualisierte Sensitivitätslabels zu erhalten?
Speichern Sie die Präsentation als PPTX, indem Sie Presentation.save mit SaveFormat.PPTX aufrufen, wie in den obigen Beispielen gezeigt.