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.

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.