Gestire le etichette di sensibilità nelle presentazioni PowerPoint in Java
Panoramica
Microsoft Purview sensitivity labels aiutano le organizzazioni a classificare e gestire i documenti. Durante l’elaborazione automatica delle presentazioni, un’applicazione potrebbe dover preservare un’etichetta esistente, applicare un’etichetta selezionata da una politica, aggiornarne lo stato o migrare i metadati dell’etichetta scritti da un flusso di lavoro Microsoft Information Protection (MIP) più vecchio.
Aspose.Slides espone i metadati delle etichette di sensibilità moderne tramite IPresentation.getSensitivityLabels. Questo metodo restituisce una ISensitivityLabelCollection che può essere ispezionata e modificata prima che la presentazione venga salvata come PPTX.
Note
Gli identificatori delle etichette di sensibilità e le informazioni sulla politica sono definiti dalla configurazione di Microsoft Purview. Convalida la disponibilità delle etichette e i requisiti della politica 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 | Recupera o imposta l’identificatore dell’etichetta di sensibilità nella politica Purview. |
| ISensitivityLabel.getSiteId e ISensitivityLabel.setSiteId | Recupera o imposta il sito associato alla politica dell’etichetta. |
| ISensitivityLabel.isEnabled e ISensitivityLabel.setEnabled | Recupera o imposta se l’etichetta è abilitata. |
| ISensitivityLabel.isRemoved e ISensitivityLabel.setRemoved | Recupera 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 | Recupera o imposta se l’etichetta è stata applicata automaticamente o tramite una decisione dell’utente. |
| ISensitivityLabel.getContentMarkTypes | Recupera i tipi di marcatura del 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 una decisione dell’utente, inclusa l’applicazione manuale, le etichette 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 | La marcatura del contenuto dell’intestazione è associata all’etichetta. |
| SensitivityLabelContentType.Footer | La marcatura del contenuto del piè di pagina è associata all’etichetta. |
| SensitivityLabelContentType.Watermark | La marcatura del contenuto del filigrana è associata all’etichetta. |
| SensitivityLabelContentType.Encryption | La protezione di crittografia è associata all’etichetta. |
È possibile associare più tipi di marcatura a un’unica 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 del 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 del contenuto
Utilizza ISensitivityLabelCollection.add con l’identificatore dell’etichetta, l’identificatore del sito, lo stato abilitato e il metodo di assegnazione. Dopo che il metodo restituisce il nuovo 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 che l’elenco restituito da ISensitivityLabel.getContentMarkTypes viene modificato tramite le sue operazioni di lista. Dopo aver individuato l’etichetta necessaria, è possibile aggiornare il suo identificatore, l’identificatore del sito, lo stato abilitato, il metodo di assegnazione, lo stato di rimozione e i tipi di marcatura del contenuto. Salva la presentazione per rendere permanenti 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 preservare il fatto che un’etichetta è stata rimossa, trova l’etichetta e chiama ISensitivityLabel.setRemoved con true. Questo mantiene l’entrata dell’etichetta registrandone lo stato di rimozione. Se invece devi eliminare un’entrata 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à legacy MIP
I flussi di lavoro basati su MIP più vecchi possono archiviare i metadati delle etichette di sensibilità nelle proprietà personalizzate del documento invece della collezione di etichette moderne. Leggi tali 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é aggiungere un identificatore di etichetta duplicato genera un’eccezione, l’esempio verifica la collezione di destinazione prima di copiare ciascuna etichetta. È possibile aggiungere ulteriori convalide per confermare che ogni etichetta legacy esista ancora nella politica 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 è necessario cancellare tutte le proprietà personalizzate del documento, quindi i metadati del documento non correlati rimangono intatti. Usa IPresentation.save con SaveFormat.Pptx per scrivere i metadati delle etichette moderne in un file PPTX.
FAQ
Aggiungere un tipo di marcatura del 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 il contenuto della diapositiva corrispondente separatamente se il tuo flusso di lavoro deve renderizzare tali marcature.
Qual è la differenza tra contrassegnare un’etichetta come rimossa e eliminarla dalla collezione?
Chiamare ISensitivityLabel.setRemoved con true mantiene l’entrata dell’etichetta e ne registra lo stato di rimozione. Chiamare ISensitivityLabelCollection.removeAt elimina l’entrata 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 che 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. Verifica i valori esistenti restituiti da ISensitivityLabel.getId prima di aggiungere o migrare le etichette.
Quale formato di output dovrebbe essere utilizzato per preservare le etichette di sensibilità aggiornate?
Salva la presentazione come PPTX chiamando IPresentation.save con SaveFormat.Pptx, come mostrato negli esempi sopra.