Python'da PowerPoint Sunumlarında Duyarlılık Etiketlerini Yönet
Genel Bakış
Microsoft Purview duyarlılık etiketleri, kuruluşların belgeleri sınıflandırmasına ve yönetmesine yardımcı olur. Otomatik sunum işleme sırasında, bir uygulama mevcut bir etiketi korumak, bir politika tarafından seçilen etiketi uygulamak, durumunu güncellemek veya eski bir Microsoft Information Protection (MIP) iş akışı tarafından yazılan etiket üst verilerini taşımak zorunda kalabilir.
Aspose.Slides, modern duyarlılık etiketi üst verilerini Presentation.getSensitivityLabels aracılığıyla sunar. Bu yöntem, sunum PPTX olarak kaydedilmeden önce incelenebilen ve değiştirilebilen bir SensitivityLabelCollection döndürür.
Note
Duyarlılık etiketi kimlikleri ve politika bilgileri, Microsoft Purview yapılandırmanız tarafından tanımlanır. Üst verileri eklemeden veya taşıma işlemine başlamadan önce ortamınızda etiket kullanılabilirliğini ve politika gereksinimlerini doğrulayın. SensitivityLabel.getContentMarkTypes değerleri, bir etiketle ilişkili içerik işaretlemelerini açıklar; bunlar tek başına slaytlara görülebilir metin veya şekil eklemez.Duyarlılık Etiketi Özelliklerini Anlayın
Her bir SensitivityLabel aşağıdaki üst verileri içerir:
| Yöntemler | Amaç |
|---|---|
| getId and setId | Purview politikasındaki duyarlılık etiketi kimliğini alır veya ayarlar. |
| getSiteId and setSiteId | Etiket politikasına bağlı siteyi alır veya ayarlar. |
| isEnabled and setEnabled | Etiketin etkin olup olmadığını alır veya ayarlar. |
| isRemoved and setRemoved | Etiketin kaldırılmış olup olmadığını alır veya ayarlar. Kaldırma durumu üst veride tutulmalıysa değeri True olarak ayarlayın. |
| getAssignmentMethodType and setAssignmentMethodType | Etiketin otomatik mi yoksa kullanıcı kararıyla mı uygulandığını alır veya ayarlar. |
| getContentMarkTypes | Etiketle ilişkili içerik işaretleme türlerini alır. |
SensitivityLabelAssignmentType sınıfı, bir etiketin nasıl atandığını tanımlar:
- Standard varsayılan veya otomatik olarak uygulanmış bir etiketi temsil eder.
- Privileged kullanıcı kararıyla uygulanan bir etiketi temsil eder; manuel olarak uygulanmış, önerilen ve zorunlu etiketler dahil.
SensitivityLabelContentType sınıfı, bir etiketle ilişkili işaretlemeyi tanımlar:
| Değer | Anlam |
|---|---|
| None | Etiket varsayılan olarak veya otomatik olarak uygulanmıştır. |
| Header | Başlık içerik işaretlemesi etiketle ilişkilendirilir. |
| Footer | Altbilgi içerik işaretlemesi etiketle ilişkilendirilir. |
| Watermark | Filigran içerik işaretlemesi etiketle ilişkilendirilir. |
| Encryption | Şifreleme koruması etiketle ilişkilendirilir. |
Bir etikete birden fazla işaretleme türü ilişkilendirilebilir.
Mevcut Duyarlılık Etiketlerini Listele
Presentation.getSensitivityLabels kullanarak modern etiket koleksiyonunu okuyun ve üzerinde yineleme yapın. Aşağıdaki örnek, her etiket için saklanan tüm özellikleri ve içerik işaretlemelerini listeler:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation
presentation = Presentation("presentation.pptx")
try:
sensitivity_labels = presentation.getSensitivityLabels()
for sensitivity_label in sensitivity_labels:
print("Label ID:", sensitivity_label.getId())
print("Site ID:", sensitivity_label.getSiteId())
print("Enabled:", sensitivity_label.isEnabled())
print("Removed:", sensitivity_label.isRemoved())
print("Assignment method:", sensitivity_label.getAssignmentMethodType())
for content_mark_type in sensitivity_label.getContentMarkTypes():
print("Content marking:", content_mark_type)
finally:
presentation.dispose()
İçerik İşaretlemesiyle Bir Duyarlılık Etiketi Ekle
SensitivityLabelCollection.add yöntemini etiket kimliği, site kimliği, etkin durumu ve atama yöntemiyle kullanın. Yöntem yeni bir SensitivityLabel döndürdükten sonra, gerekli işaretleme değerlerini SensitivityLabel.getContentMarkTypes tarafından döndürülen listeye ekleyin.
İşte aşağıdaki örnek, altbilgi ve filigran işaretlemeleriyle ilişkili, manuel olarak seçilmiş bir etiketi ekler ve ardından sonucu PPTX olarak kaydeder:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SensitivityLabelAssignmentType, SensitivityLabelContentType
from java.util import UUID
presentation = Presentation("presentation.pptx")
try:
sensitivity_labels = presentation.getSensitivityLabels()
label_identifier = "{11111111-2222-3333-4444-555555555555}"
site_identifier = UUID.fromString("aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee")
is_enabled = True
assignment_method = SensitivityLabelAssignmentType.Privileged
sensitivity_label = sensitivity_labels.add(label_identifier, site_identifier, is_enabled, assignment_method)
sensitivity_label.getContentMarkTypes().addItem(jpype.JInt(SensitivityLabelContentType.Footer))
sensitivity_label.getContentMarkTypes().addItem(jpype.JInt(SensitivityLabelContentType.Watermark))
presentation.save("presentation_with_label.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Bir Duyarlılık Etiketini Güncelle
SensitivityLabel değerleri okuma/yazma özelliktedir, ancak SensitivityLabel.getContentMarkTypes tarafından döndürülen liste, liste işlemleriyle değiştirilir. Gerekli etiketi bulduktan sonra kimliğini, site kimliğini, etkin durumunu, atama yöntemini, kaldırma durumunu ve içerik işaretleme türlerini güncelleyebilirsiniz. Değişiklikleri kalıcı kılmak için sunumu kaydedin.
Aşağıdaki örnek, ilk etiketin etkin durumunu ve atama yöntemini günceller:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SensitivityLabelAssignmentType
presentation = Presentation("presentation.pptx")
try:
sensitivity_labels = presentation.getSensitivityLabels()
if sensitivity_labels.getCount() > 0:
sensitivity_label = sensitivity_labels.get_Item(0)
sensitivity_label.setEnabled(True)
sensitivity_label.setAssignmentMethodType(SensitivityLabelAssignmentType.Privileged)
presentation.save("presentation_with_updated_label.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Bir Duyarlılık Etiketini Kaldırılmış Olarak İşaretle
Bir etiketin kaldırıldığını korumak için, etiketi bulup SensitivityLabel.setRemoved metodunu True ile çağırın. Bu, etiketi kaldırılmış durumunu kaydederek girişini tutar. Bunun yerine modern koleksiyondan bir girişi silmek isterseniz, SensitivityLabelCollection.removeAt kullanın; tüm girişleri silmek için SensitivityLabelCollection.clear kullanın.
Aşağıdaki örnek, belirli bir etiketi kaldırılmış olarak işaretler ve güncellenmiş sunumu kaydeder:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation("presentation.pptx")
try:
sensitivity_labels = presentation.getSensitivityLabels()
target_label_identifier = "{11111111-2222-3333-4444-555555555555}"
for sensitivity_label in sensitivity_labels:
is_target_label = str(sensitivity_label.getId()).casefold() == target_label_identifier.casefold()
if is_target_label:
sensitivity_label.setRemoved(True)
break
presentation.save("presentation_with_removed_label.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Eski MIP Duyarlılık Etiketlerini Oku ve Taşı
Eski MIP tabanlı iş akışları, duyarlılık etiketi üst verilerini modern etiket koleksiyonu yerine özel belge özelliklerinde depolayabilir. Bu üst verileri DocumentProperties.getSensitivityLabels ile okuyun. Yöntem eski özel özellikleri ayrıştırır ve bir SensitivityLabel nesneleri dizisi döndürür.
Üst verileri taşımak için, döndürülen her etiketi modern SensitivityLabelCollection içine SensitivityLabelCollection.add ile ekleyin. Aynı etiket kimliğini eklemek bir istisna oluşturduğundan, örnek her etiketi kopyalamadan önce hedef koleksiyonu kontrol eder. Her eski etiketin hâlâ geçerli Purview politikasında bulunduğunu doğrulamak için ek kontrol ekleyebilirsiniz.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation("presentation_with_legacy_labels.pptx")
try:
legacy_sensitivity_labels = presentation.getDocumentProperties().getSensitivityLabels()
modern_sensitivity_labels = presentation.getSensitivityLabels()
for legacy_sensitivity_label in legacy_sensitivity_labels:
label_already_exists = False
for modern_sensitivity_label in modern_sensitivity_labels:
label_already_exists = str(modern_sensitivity_label.getId()).casefold() == str(legacy_sensitivity_label.getId()).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", SaveFormat.Pptx)
finally:
presentation.dispose()
Taşıma, ayrıştırılmış etiket nesnelerini modern koleksiyona kopyalar. Tüm özel belge özelliklerini temizlemeyi gerektirmez, böylece alakasız belge üst verileri aynı kalır. Modern etiket üst verilerini bir PPTX dosyasına yazmak için Presentation.save metodunu SaveFormat.Pptx ile kullanın.
SSS
Bir içerik işaretleme türü eklemek slaytlarda görünür bir başlık, altbilgi veya filigran oluşturur mu?
Hayır. SensitivityLabel.getContentMarkTypes tarafından döndürülen listeye eklenen değerler, duyarlılık etiketiyle ilişkilendirilen işaretlemeleri açıklar. Bunlar sunumda görünür metin veya şekil oluşturmaz. İş akışınız bu işaretlemeleri görüntülemesi gerekiyorsa ilgili slayt içeriğini ayrı olarak ekleyin.
Bir etiketi kaldırılmış olarak işaretlemek ile koleksiyondan silmek arasındaki fark nedir?
SensitivityLabel.setRemoved metodunu True ile çağırmak etiket girdisini tutar ve kaldırılmış durumunu kaydeder. SensitivityLabelCollection.removeAt metodunu çağırmak ise girdiyi modern koleksiyondan siler. Kuruluşunuzun üst veri saklama gereksinimlerine uygun işlemi seçin.
Bir sunum hem eski MIP üst verilerini hem de modern duyarlılık etiketlerini içerebilir mi?
Evet. Eski etiketler özel belge özelliklerinde kalabilirken modern etiketler Presentation.getSensitivityLabels aracılığıyla erişilebilir. Eski üst verileri okumak için DocumentProperties.getSensitivityLabels kullanın ve modern koleksiyonda hâlihazırda bulunmayan geçerli etiketleri taşıyın.
Aynı kimliğe sahip bir etiket birden fazla kez eklendiğinde ne olur?
SensitivityLabelCollection.add aynı kimliğe sahip bir etiket zaten koleksiyonda bulunduğunda bir istisna fırlatır. Etiket eklemeden veya taşıma işlemine başlamadan önce SensitivityLabel.getId tarafından döndürülen mevcut değerleri kontrol edin.
Güncellenmiş duyarlılık etiketlerini korumak için hangi çıktı formatı kullanılmalıdır?
Yukarıdaki örneklerde gösterildiği gibi, sunumu Presentation.save metodunu SaveFormat.Pptx ile çağırarak PPTX formatında kaydedin.