PowerPoint Sunumlarında JavaScript ile Duyarlılık Etiketlerini Yönetme

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

Aspose.Slides for Node.js via Java, 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 Anlamak

Her SensitivityLabel aşağıdaki üst verileri içerir:

Yöntemler Amaç
SensitivityLabel.getId ve SensitivityLabel.setId Purview politikasındaki duyarlılık etiketi tanımlayıcısını alır veya ayarlar.
SensitivityLabel.getSiteId ve SensitivityLabel.setSiteId Etiket politikasına ilişkilendirilen siteyi alır veya ayarlar.
SensitivityLabel.isEnabled ve SensitivityLabel.setEnabled Etiketin etkin olup olmadığını alır veya ayarlar.
SensitivityLabel.isRemoved ve SensitivityLabel.setRemoved Etiketin kaldırılmış olup olmadığını alır veya ayarlar. Kaldırma durumunun üst veride tutulması gerektiğinde değeri true olarak ayarlayın.
SensitivityLabel.getAssignmentMethodType ve SensitivityLabel.setAssignmentMethodType Etiketin otomatik olarak mı yoksa kullanıcı kararıyla mı uygulandığını alır veya ayarlar.
SensitivityLabel.getContentMarkTypes Etiketle ilişkilendirilmiş içerik işaretleme tiplerini 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 Üstbilgi içerik işaretlemesi etiketle ilişkilendirilmiştir.
SensitivityLabelContentType.Footer Altbilgi içerik işaretlemesi etiketle ilişkilendirilmiştir.
SensitivityLabelContentType.Watermark Filigran içerik işaretlemesi etiketle ilişkilendirilmiştir.
SensitivityLabelContentType.Encryption Şifreleme koruması etiketle ilişkilendirilmiştir.

Bir etiketle birden çok işaretleme türü ilişkilendirilebilir.

Mevcut Duyarlılık Etiketlerini Listeleme

Modern etiket koleksiyonunu Presentation.getSensitivityLabels ile okuyun ve enumerate edin. Aşağıdaki örnek, her etiket için saklanan tüm özellikleri ve içerik işaretlemelerini listeler:

const aspose = { slides: require("aspose.slides.via.java") };

const presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    const sensitivityLabels = presentation.getSensitivityLabels();
    const labelCount = sensitivityLabels.getCount();

    for (let labelIndex = 0; labelIndex < labelCount; labelIndex++) {
        const sensitivityLabel = sensitivityLabels.get_Item(labelIndex);
        const labelIdentifier = sensitivityLabel.getId();
        const siteIdentifier = sensitivityLabel.getSiteId();
        const isEnabled = sensitivityLabel.isEnabled();
        const isRemoved = sensitivityLabel.isRemoved();
        const assignmentMethod = sensitivityLabel.getAssignmentMethodType();

        console.log("Label ID: " + labelIdentifier);
        console.log("Site ID: " + siteIdentifier);
        console.log("Enabled: " + isEnabled);
        console.log("Removed: " + isRemoved);
        console.log("Assignment method: " + assignmentMethod);

        const contentMarkTypes = sensitivityLabel.getContentMarkTypes();
        const contentMarkCount = contentMarkTypes.size();

        for (let contentMarkIndex = 0; contentMarkIndex < contentMarkCount; contentMarkIndex++) {
            const contentMarkType = contentMarkTypes.get_Item(contentMarkIndex);
            console.log("Content marking: " + contentMarkType);
        }
    }
} finally {
    presentation.dispose();
}

İçerik İşaretlemesiyle Duyarlılık Etiketi Ekleme

SensitivityLabelCollection.add yöntemini etiket tanımlayıcısı, site tanımlayıcısı, 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.

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

const aspose = { slides: require("aspose.slides.via.java") };
const java = require("java");

const presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    const sensitivityLabels = presentation.getSensitivityLabels();

    const labelIdentifier = "{11111111-2222-3333-4444-555555555555}";
    const siteIdentifier = java.callStaticMethodSync(
        "java.util.UUID",
        "fromString",
        "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee");
    const isEnabled = true;
    const assignmentMethod = aspose.slides.SensitivityLabelAssignmentType.Privileged;

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

    const contentMarkTypes = sensitivityLabel.getContentMarkTypes();
    contentMarkTypes.addItem(aspose.slides.SensitivityLabelContentType.Footer);
    contentMarkTypes.addItem(aspose.slides.SensitivityLabelContentType.Watermark);

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

Duyarlılık Etiketini Güncelleme

SensitivityLabel değerleri okuma/yazma özelliğine sahiptir; ancak SensitivityLabel.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ı kılmak için sunumu kaydedin.

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

const aspose = { slides: require("aspose.slides.via.java") };

const presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    const sensitivityLabels = presentation.getSensitivityLabels();
    const labelCount = sensitivityLabels.getCount();

    if (labelCount > 0) {
        const sensitivityLabel = sensitivityLabels.get_Item(0);
        sensitivityLabel.setEnabled(true);
        sensitivityLabel.setAssignmentMethodType(
            aspose.slides.SensitivityLabelAssignmentType.Privileged);
    }

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

Duyarlılık Etiketini Kaldırılmış Olarak İşaretleme

Bir etiketin kaldırıldığını korumak için, etiketi bulun ve SensitivityLabel.setRemoved yöntemini true ile çağırın. Bu, etiket kaydını tutar ve kaldırma durumunu kaydeder. Bunun yerine modern koleksiyondan bir girişi silmeniz gerekiyorsa, 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:

const aspose = { slides: require("aspose.slides.via.java") };

const presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    const sensitivityLabels = presentation.getSensitivityLabels();
    const targetLabelIdentifier = "{11111111-2222-3333-4444-555555555555}";
    const labelCount = sensitivityLabels.getCount();

    for (let labelIndex = 0; labelIndex < labelCount; labelIndex++) {
        const sensitivityLabel = sensitivityLabels.get_Item(labelIndex);
        const labelIdentifier = sensitivityLabel.getId();
        const isTargetLabel = labelIdentifier.toLowerCase() === targetLabelIdentifier.toLowerCase();

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

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

Eski MIP Duyarlılık Etiketlerini Okuma ve Taşıma

Daha eski MIP tabanlı iş akışları, modern etiket koleksiyonu yerine özelleştirilmiş belge özelliklerinde duyarlılık etiketi üst verilerini depolayabilir. Bu üst verileri DocumentProperties.getSensitivityLabels ile okuyun. Yöntem, eski özelleştirilmiş özellikleri ayrıştırır ve bir SensitivityLabel nesneleri dizisi döndürür.

Üst verileri taşımak için, dönen her etiketi modern SensitivityLabelCollection içine SensitivityLabelCollection.add ile ekleyin. Aynı etiket tanımlayıcısını 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 mevcut olduğunu doğrulamak için ek doğrulama ekleyebilirsiniz.

const aspose = { slides: require("aspose.slides.via.java") };

const presentation = new aspose.slides.Presentation("presentation_with_legacy_labels.pptx");
try {
    const legacySensitivityLabels = presentation.getDocumentProperties().getSensitivityLabels();
    const modernSensitivityLabels = presentation.getSensitivityLabels();

    for (let legacyLabelIndex = 0; legacyLabelIndex < legacySensitivityLabels.length; legacyLabelIndex++) {
        const legacySensitivityLabel = legacySensitivityLabels[legacyLabelIndex];
        const legacyLabelIdentifier = legacySensitivityLabel.getId();
        const modernLabelCount = modernSensitivityLabels.getCount();
        let labelAlreadyExists = false;

        for (let modernLabelIndex = 0; modernLabelIndex < modernLabelCount; modernLabelIndex++) {
            const modernSensitivityLabel = modernSensitivityLabels.get_Item(modernLabelIndex);
            const modernLabelIdentifier = modernSensitivityLabel.getId();

            labelAlreadyExists =
                modernLabelIdentifier.toLowerCase() === legacyLabelIdentifier.toLowerCase();

            if (labelAlreadyExists) {
                break;
            }
        }

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

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

Taşıma, ayrıştırılmış etiket nesnelerini modern koleksiyona kopyalar. Tüm özelleştirilmiş belge özelliklerini temizlemeye gerek yoktur; böylece ilgili olmayan belge üst verileri korunur. Modern etiket üst verilerini bir PPTX dosyasına yazmak için Presentation.save ile SaveFormat.Pptx kullanın.

SSS

Bir içerik işaretleme türü eklemek, slaytlarda görünür bir üstbilgi, 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 tanımlar. Bunlar sunumda görünür metin veya şekil oluşturmaz. İş akışınız bu işaretlemeleri göstermek zorundaysa, 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 yöntemini true ile çağırmak, etiket kaydını tutar ve kaldırma durumunu kaydeder. SensitivityLabelCollection.removeAt yöntemini çağırmak, modern koleksiyondan kaydı 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 özelleştirilmiş belge özelliklerinde kalabilirken, modern etiketler Presentation.getSensitivityLabels aracılığıyla erişilebilir. Eski üst verileri okumak ve modern koleksiyonda hâlâ bulunmayan geçerli etiketleri taşımak için DocumentProperties.getSensitivityLabels kullanın.

Aynı tanımlayıcıya sahip bir etiket birden çok kez eklenirse ne olur?

Koleksiyon aynı tanımlayıcıya sahip bir etiketi zaten içeriyorsa, SensitivityLabelCollection.add bir istisna oluşturur. Etiket eklemeden veya taşımadan önce mevcut değerleri SensitivityLabel.getId ile 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, Presentation.save ile SaveFormat.Pptx kullanarak sunumu PPTX olarak kaydedin.