Gestire le etichette di sensibilità nelle presentazioni PowerPoint su Android

Panoramica

Le etichette di sensibilità di Microsoft Purview aiutano le organizzazioni a classificare e gestire i documenti. Durante l’elaborazione automatica di una presentazione, un’applicazione potrebbe dover conservare un’etichetta esistente, applicare un’etichetta selezionata da una policy, aggiornarne lo stato o migrare i metadati dell’etichetta scritti da un flusso di lavoro Microsoft Information Protection (MIP) più vecchio.

Aspose.Slides per Android tramite Java espone i metadati delle etichette di sensibilità moderne tramite IPresentation.getSensitivityLabels. questo metodo restituisce un ISensitivityLabelCollection che può essere ispezionato e modificato prima che la presentazione venga salvata come PPTX.

Comprendere le proprietà delle etichette di sensibilità

Ogni ISensitivityLabel contiene i seguenti metadati:

Metodi Scopo
ISensitivityLabel.getId e ISensitivityLabel.setId Ottiene o imposta l’identificatore dell’etichetta di sensibilità nella policy Purview.
ISensitivityLabel.getSiteId e ISensitivityLabel.setSiteId Ottiene o imposta il sito associato alla policy dell’etichetta.
ISensitivityLabel.isEnabled e ISensitivityLabel.setEnabled Ottiene o imposta se l’etichetta è abilitata.
ISensitivityLabel.isRemoved e ISensitivityLabel.setRemoved Ottiene o imposta se l’etichetta è stata rimossa. Imposta il valore su true quando lo stato di rimozione deve essere conservato nei metadati.
ISensitivityLabel.getAssignmentMethodType e ISensitivityLabel.setAssignmentMethodType Ottiene o imposta se l’etichetta è stata applicata automaticamente o tramite decisione dell’utente.
ISensitivityLabel.getContentMarkTypes Ottiene i tipi di marcatura di contenuto associati all’etichetta.

La classe SensitivityLabelAssignmentType definisce come è stata assegnata un’etichetta:

La classe SensitivityLabelContentType definisce la marcatura associata a un’etichetta:

Valore Significato
SensitivityLabelContentType.None L’etichetta è stata applicata per impostazione predefinita o automaticamente.
SensitivityLabelContentType.Header Una marcatura di contenuto nell’intestazione è associata all’etichetta.
SensitivityLabelContentType.Footer Una marcatura di contenuto nel piè di pagina è associata all’etichetta.
SensitivityLabelContentType.Watermark Una marcatura di contenuto a filigrana è associata all’etichetta.
SensitivityLabelContentType.Encryption Una protezione di crittografia è associata all’etichetta.

Tipi di marcatura multipli possono essere associati a una singola etichetta.

Elencare le etichette di sensibilità esistenti

Leggi la collezione di etichette moderne da IPresentation.getSensitivityLabels e enumerala. L’esempio seguente elenca ogni proprietà e marcatura di contenuto memorizzata per ciascuna etichetta:

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();
}

Aggiungere un’etichetta di sensibilità con marcatura di contenuto

Usa ISensitivityLabelCollection.add con l’identificatore dell’etichetta, l’identificatore del sito, lo stato abilitato e il metodo di assegnazione. Dopo che il metodo restituisce la nuova ISensitivityLabel, aggiungi i valori di marcatura richiesti tramite l’elenco restituito da ISensitivityLabel.getContentMarkTypes.

L’esempio seguente aggiunge un’etichetta selezionata manualmente associata a marcature di piè di pagina e filigrana, quindi salva il risultato come PPTX:

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();
}

Aggiornare un’etichetta di sensibilità

I valori di ISensitivityLabel sono leggibili/scrivibili, eccetto l’elenco restituito da ISensitivityLabel.getContentMarkTypes che viene modificato tramite le sue operazioni di lista. Dopo aver individuato l’etichetta richiesta, puoi aggiornare il suo identificatore, l’identificatore del sito, lo stato abilitato, il metodo di assegnazione, lo stato di rimozione e i tipi di marcatura di contenuto. Salva la presentazione per rendere persistenti le modifiche.

L’esempio seguente aggiorna lo stato abilitato e il metodo di assegnazione della prima etichetta:

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();
}

Contrassegnare un’etichetta di sensibilità come rimossa

Per conservare il fatto che un’etichetta è stata rimossa, trova l’etichetta e chiama ISensitivityLabel.setRemoved con true. Questo mantiene la voce dell’etichetta registrando il suo stato di rimozione. Se invece è necessario eliminare una voce dalla collezione moderna, usa ISensitivityLabelCollection.removeAt; usa ISensitivityLabelCollection.clear per cancellare tutte le voci.

L’esempio seguente contrassegna un’etichetta specifica come rimossa e salva la presentazione aggiornata:

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();
}

Leggere e migrare le etichette di sensibilità MIP legacy

I flussi di lavoro basati su MIP più vecchi possono memorizzare i metadati delle etichette di sensibilità in proprietà personalizzate del documento anziché nella collezione di etichette moderne. Leggi quei metadati con IDocumentProperties.getSensitivityLabels. Il metodo analizza le proprietà personalizzate legacy e restituisce un array di oggetti ISensitivityLabel.

Per migrare i metadati, aggiungi ogni etichetta restituita alla moderna ISensitivityLabelCollection tramite ISensitivityLabelCollection.add. Poiché l’aggiunta di un identificatore di etichetta duplicato genera un’eccezione, l’esempio controlla la collezione di destinazione prima di copiare ciascuna etichetta. Puoi aggiungere ulteriori convalide per confermare che ogni etichetta legacy esista ancora nella policy Purview corrente.

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();
}

La migrazione copia gli oggetti etichetta analizzati nella collezione moderna. Non richiede la cancellazione di tutte le proprietà personalizzate del documento, quindi i metadati non correlati rimangono intatti. Usa IPresentation.save con SaveFormat.Pptx per scrivere i metadati delle etichette moderne in un file PPTX.

FAQ

L’aggiunta di un tipo di marcatura di contenuto crea un’intestazione, un piè di pagina o una filigrana visibile nelle diapositive?

No. I valori aggiunti tramite l’elenco restituito da ISensitivityLabel.getContentMarkTypes descrivono le marcature associate all’etichetta di sensibilità. Non creano testo o forme visibili nella presentazione. Aggiungi separatamente il contenuto della diapositiva corrispondente se il tuo flusso di lavoro deve renderizzare tali marcature.

Qual è la differenza tra contrassegnare un’etichetta come rimossa ed eliminarla dalla collezione?

Chiamare ISensitivityLabel.setRemoved con true mantiene la voce dell’etichetta e registra il suo stato di rimozione. Chiamare ISensitivityLabelCollection.removeAt elimina la voce dalla collezione moderna. Scegli l’operazione che corrisponde ai requisiti di conservazione dei metadati della tua organizzazione.

Una presentazione può contenere sia metadati MIP legacy sia etichette di sensibilità moderne?

Sì. Le etichette legacy possono rimanere nelle proprietà personalizzate del documento, mentre le etichette moderne sono disponibili tramite IPresentation.getSensitivityLabels. Usa IDocumentProperties.getSensitivityLabels per leggere i metadati legacy e migrare solo le etichette valide che non sono già presenti nella collezione moderna.

Cosa succede quando un’etichetta con lo stesso identificatore viene aggiunta più di una volta?

ISensitivityLabelCollection.add genera un’eccezione quando la collezione contiene già un’etichetta con lo stesso identificatore. Controlla i valori esistenti restituiti da ISensitivityLabel.getId prima di aggiungere o migrare le etichette.

Quale formato di output deve essere usato per conservare le etichette di sensibilità aggiornate?

Salva la presentazione come PPTX chiamando IPresentation.save con SaveFormat.Pptx, come mostrato negli esempi sopra.