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.
Nota
Gli identificatori delle etichette di sensibilità e le informazioni sulla policy sono definiti dalla configurazione di Microsoft Purview. Convalida la disponibilità delle etichette e i requisiti della policy nel tuo ambiente prima di aggiungere o migrare i metadati. I valori di ISensitivityLabel.getContentMarkTypes descrivono le marcature di contenuto associate a un’etichetta; non aggiungono di per sé testo o forme visibili alle diapositive.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:
- SensitivityLabelAssignmentType.Standard rappresenta un’etichetta predefinita o applicata automaticamente.
- SensitivityLabelAssignmentType.Privileged rappresenta un’etichetta applicata tramite decisione dell’utente, comprese le etichette applicate manualmente, consigliate e obbligatorie.
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.