Java'da PowerPoint Sunumlarında Hassasiyet Etiketlerini Yönetme

Genel Bakış

Microsoft Purview hassasiyet 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 bir etiketi uygulamak, durumunu güncellemek veya daha eski bir Microsoft Information Protection (MIP) iş akışı tarafından yazılmış etiket meta verilerini taşımak isteyebilir.

Aspose.Slides, modern hassasiyet etiketi meta verilerini IPresentation.getSensitivityLabels aracılığıyla sağlar. Bu yöntem, sunum PPTX olarak kaydedilmeden önce incelenip değiştirilebilecek bir ISensitivityLabelCollection döndürür.

Hassasiyet Etiketi Özelliklerini Anlayın

Her ISensitivityLabel aşağıdaki meta verileri içerir:

Yöntemler Amaç
ISensitivityLabel.getId ve ISensitivityLabel.setId Purview politikasındaki hassasiyet etiketi tanımlayıcısını alır veya ayarlar.
ISensitivityLabel.getSiteId ve ISensitivityLabel.setSiteId Etiket politikasına bağlı siteyi alır veya ayarlar.
ISensitivityLabel.isEnabled ve ISensitivityLabel.setEnabled Etiketin etkin olup olmadığını alır veya ayarlar.
ISensitivityLabel.isRemoved ve ISensitivityLabel.setRemoved Etiketin kaldırılıp kaldırılmadığını alır veya ayarlar. Kaldırma durumu meta veride tutulmalıysa değeri true olarak ayarlayın.
ISensitivityLabel.getAssignmentMethodType ve ISensitivityLabel.setAssignmentMethodType Etiketin otomatik olarak mı yoksa bir kullanıcı kararıyla mı uygulandığını alır veya ayarlar.
ISensitivityLabel.getContentMarkTypes Etiketle ilişkili içerik işaretleme türlerini alır.

SensitivityLabelAssignmentType sınıfı, bir etiketin nasıl atandığını tanımlar:

SensitivityLabelContentType sınıfı, bir etiketle ilişkili işaretlemeyi tanımlar:

Değer Anlam
SensitivityLabelContentType.None Etiket varsayılan olarak veya otomatik şekilde uygulanmıştır.
SensitivityLabelContentType.Header Etiketle ilişkili bir başlık içerik işaretlemesi vardır.
SensitivityLabelContentType.Footer Etiketle ilişkili bir altbilgi içerik işaretlemesi vardır.
SensitivityLabelContentType.Watermark Etiketle ilişkili bir filigran içerik işaretlemesi vardır.
SensitivityLabelContentType.Encryption Etiketle ilişkili bir şifreleme koruması vardır.

Bir etiket birden fazla işaretleme türüyle ilişkilendirilebilir.

Varolan Hassasiyet Etiketlerini Listele

IPresentation.getSensitivityLabels yönteminden modern etiket koleksiyonunu okuyun ve yineleyin. Aşağıdaki örnek, her etiket için depolanmış tüm özellikleri ve içerik işaretlemelerini listeler:

import com.aspose.slides.*;

Presentation presentation = new Presentation("presentation.pptx");
try {
    ISensitivityLabelCollection sensitivityLabels = presentation.getSensitivityLabels();

    for (ISensitivityLabel sensitivityLabel : sensitivityLabels) {
        System.out.println("Label ID: " + sensitivityLabel.getId());
        System.out.println("Site ID: " + sensitivityLabel.getSiteId());
        System.out.println("Enabled: " + sensitivityLabel.isEnabled());
        System.out.println("Removed: " + sensitivityLabel.isRemoved());
        System.out.println("Assignment method: " + sensitivityLabel.getAssignmentMethodType());

        for (Integer contentMarkType : sensitivityLabel.getContentMarkTypes()) {
            System.out.println("Content marking: " + contentMarkType);
        }
    }
} finally {
    presentation.dispose();
}

İçerik İşaretlemesiyle Hassasiyet Etiketi Ekle

ISensitivityLabelCollection.add yöntemini etiket tanımlayıcısı, site tanımlayıcısı, etkin durumu ve atama yöntemi ile kullanın. Yöntem yeni bir ISensitivityLabel döndürdükten sonra, gerekli işaretleme değerlerini ISensitivityLabel.getContentMarkTypes tarafından döndürülen listeye ekleyin.

Aşağıdaki örnek, altbilgi ve filigran işaretlemeleriyle ilişkili manuel seçilmiş bir etiketi ekler ve ardından sonucu PPTX olarak kaydeder:

import com.aspose.slides.*;
import java.util.UUID;

Presentation presentation = new Presentation("presentation.pptx");
try {
    ISensitivityLabelCollection sensitivityLabels = presentation.getSensitivityLabels();

    String labelIdentifier = "{11111111-2222-3333-4444-555555555555}";
    UUID siteIdentifier = UUID.fromString("aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee");
    boolean isEnabled = true;
    int assignmentMethod = SensitivityLabelAssignmentType.Privileged;

    ISensitivityLabel sensitivityLabel = sensitivityLabels.add(
            labelIdentifier,
            siteIdentifier,
            isEnabled,
            assignmentMethod);

    sensitivityLabel.getContentMarkTypes().addItem(SensitivityLabelContentType.Footer);
    sensitivityLabel.getContentMarkTypes().addItem(SensitivityLabelContentType.Watermark);

    presentation.save("presentation_with_label.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Hassasiyet Etiketini Güncelle

ISensitivityLabel değerleri okuma/yazma özelliktedir; yalnızca ISensitivityLabel.getContentMarkTypes tarafından döndürülen liste, liste işlemleriyle değiştirilir. Gerekli etiketi bulduktan sonra tanımlayıcısını, site tanımlayıcısını, etkin durumunu, atama yöntemini, kaldırma durumunu ve içerik işaretleme türlerini güncelleyebilirsiniz. Değişiklikleri kalıcı hâle getirmek için sunumu kaydedin.

Aşağıdaki örnek, ilk etiketin etkin durumunu ve atama yöntemini günceller:

import com.aspose.slides.*;

Presentation presentation = new Presentation("presentation.pptx");
try {
    ISensitivityLabelCollection sensitivityLabels = presentation.getSensitivityLabels();

    if (sensitivityLabels.getCount() > 0) {
        ISensitivityLabel sensitivityLabel = sensitivityLabels.get_Item(0);
        sensitivityLabel.setEnabled(true);
        sensitivityLabel.setAssignmentMethodType(SensitivityLabelAssignmentType.Privileged);
    }

    presentation.save("presentation_with_updated_label.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Hassasiyet Etiketini Kaldırıldı Olarak İşaretle

Bir etiketin kaldırıldığını korumak için etiketi bulup ISensitivityLabel.setRemoved metodunu true ile çağırın. Bu, etiket girişini tutarken kaldırıldı durumunu kaydeder. Modern koleksiyondan bir girişi tamamen silmek isterseniz, ISensitivityLabelCollection.removeAt yöntemini kullanın; tüm girdileri silmek için ISensitivityLabelCollection.clear metodunu kullanın.

Aşağıdaki örnek, belirli bir etiketi kaldırıldı olarak işaretler ve güncellenmiş sunumu kaydeder:

import com.aspose.slides.*;

Presentation presentation = new Presentation("presentation.pptx");
try {
    ISensitivityLabelCollection sensitivityLabels = presentation.getSensitivityLabels();
    String targetLabelIdentifier = "{11111111-2222-3333-4444-555555555555}";

    for (ISensitivityLabel sensitivityLabel : sensitivityLabels) {
        boolean isTargetLabel = sensitivityLabel.getId().equalsIgnoreCase(targetLabelIdentifier);

        if (isTargetLabel) {
            sensitivityLabel.setRemoved(true);
            break;
        }
    }

    presentation.save("presentation_with_removed_label.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Eski MIP Hassasiyet Etiketlerini Oku ve Taşı

Eski MIP tabanlı iş akışları, hassasiyet etiketi meta verilerini modern etiket koleksiyonu yerine özel belge özelliklerinde saklayabilir. Bu meta veriyi IDocumentProperties.getSensitivityLabels ile okuyun. Yöntem, eski özel özellikleri ayrıştırır ve bir dizi ISensitivityLabel nesnesi döndürür.

Meta veriyi taşımak için, döndürülen her etiketi modern ISensitivityLabelCollection içine ISensitivityLabelCollection.add yöntemiyle ekleyin. Çift etiket tanımlayıcısı eklemek bir istisna fırlattığından, örnek hedef koleksiyonu kontrol ettikten sonra her etiketi kopyalar. Her eski etiketin hâlâ geçerli Purview politikasında mevcut olduğunu doğrulamak için ek doğrulama ekleyebilirsiniz.

import com.aspose.slides.*;

Presentation presentation = new Presentation("presentation_with_legacy_labels.pptx");
try {
    ISensitivityLabel[] legacySensitivityLabels = presentation.getDocumentProperties().getSensitivityLabels();
    ISensitivityLabelCollection modernSensitivityLabels = presentation.getSensitivityLabels();

    for (ISensitivityLabel legacySensitivityLabel : legacySensitivityLabels) {
        boolean labelAlreadyExists = false;

        for (ISensitivityLabel modernSensitivityLabel : modernSensitivityLabels) {
            labelAlreadyExists = modernSensitivityLabel.getId().equalsIgnoreCase(
                    legacySensitivityLabel.getId());

            if (labelAlreadyExists) {
                break;
            }
        }

        if (!labelAlreadyExists) {
            modernSensitivityLabels.add(legacySensitivityLabel);
        }
    }

    presentation.save("presentation_with_modern_labels.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Taşıma işlemi, ayrıştırılmış etiket nesnelerini modern koleksiyona kopyalar. Tüm özel belge özelliklerini temizlemeyi gerektirmez; ilişkili olmayan belge meta verileri olduğu gibi kalır. Modern etiket meta verilerini bir PPTX dosyasına yazmak için IPresentation.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. ISensitivityLabel.getContentMarkTypes tarafından döndürülen listeye eklenen değerler, hassasiyet etiketiyle ilişkili işaretlemeleri tanımlar. Bunlar sunumda görünür metin veya şekil oluşturmaz. İş akışınız bu işaretlemeleri görsel olarak göstermek zorundaysa ilgili slayt içeriğini ayrı olarak ekleyin.

Bir etiketi kaldırıldı olarak işaretlemek ile koleksiyondan silmek arasındaki fark nedir?

ISensitivityLabel.setRemoved metodunu true ile çağırmak, etiket girişini tutar ve kaldırıldı durumunu kaydeder. ISensitivityLabelCollection.removeAt metodunu çağırmak ise modern koleksiyondan girdiyi siler. Kuruluşunuzun meta veri saklama gereksinimlerine uygun işlemi seçin.

Bir sunum hem eski MIP meta verilerini hem de modern hassasiyet etiketlerini içerebilir mi?

Evet. Eski etiketler özel belge özelliklerinde kalabilirken, modern etiketler IPresentation.getSensitivityLabels aracılığıyla erişilebilir. Eski meta veriyi okumak ve hâlen modern koleksiyonda bulunmayan geçerli etiketleri taşımak için IDocumentProperties.getSensitivityLabels metodunu kullanın.

Aynı tanımlayıcıya sahip bir etiket birden fazla kez eklendiğinde ne olur?

ISensitivityLabelCollection.add koleksiyon zaten aynı tanımlayıcıya sahip bir etiket içeriyorsa bir istisna fırlatır. Etiket eklemeden veya taşıma işlemine başlamadan önce ISensitivityLabel.getId tarafından döndürülen mevcut değerleri kontrol edin.

Güncellenmiş hassasiyet etiketlerini korumak için hangi çıktı formatı kullanılmalıdır?

Yukarıdaki örneklerde gösterildiği gibi, sunumu SaveFormat.Pptx ile IPresentation.save metodunu çağırarak PPTX olarak kaydedin.