Spravovat citlivé štítky v PowerPoint prezentacích v JavaScriptu
Přehled
Microsoft Purview sensitivity labels pomáhají organizacím klasifikovat a spravovat dokumenty. Během automatického zpracování prezentací může aplikace potřebovat zachovat existující štítek, použít štítek vybraný politikou, aktualizovat jeho stav nebo migrovat metadata štítku vytvořená starším pracovním postupem Microsoft Information Protection (MIP).
Aspose.Slides for Node.js via Java vystavuje moderní metadata citlivých štítků prostřednictvím Presentation.getSensitivityLabels. Tento metod vrací SensitivityLabelCollection, kterou lze prohlédnout a upravit před uložením prezentace jako PPTX.
Note
Identifikátory citlivých štítků a informace o politice jsou definovány vaší konfigurací Microsoft Purview. Ověřte dostupnost štítků a požadavky politik ve vašem prostředí před přidáním nebo migrací metadat. Hodnoty SensitivityLabel.getContentMarkTypes popisují označení obsahu spojená se štítkem; samy o sobě nepřidávají viditelný text ani tvary na snímky.Pochopení vlastností citlivých štítků
Každý SensitivityLabel obsahuje následující metadata:
| Metody | Účel |
|---|---|
| SensitivityLabel.getId a SensitivityLabel.setId | Získat nebo nastavit identifikátor citlivého štítku v politice Purview. |
| SensitivityLabel.getSiteId a SensitivityLabel.setSiteId | Získat nebo nastavit místo (site) spojené s politikou štítku. |
| SensitivityLabel.isEnabled a SensitivityLabel.setEnabled | Získat nebo nastavit, zda je štítek povolen. |
| SensitivityLabel.isRemoved a SensitivityLabel.setRemoved | Získat nebo nastavit, zda byl štítek odstraněn. Nastavte hodnotu na true, když má být stav odstranění zachován v metadatech. |
| SensitivityLabel.getAssignmentMethodType a SensitivityLabel.setAssignmentMethodType | Získat nebo nastavit, zda byl štítek aplikován automaticky nebo na základě rozhodnutí uživatele. |
| SensitivityLabel.getContentMarkTypes | Získat typy označení obsahu spojené se štítkem. |
Třída SensitivityLabelAssignmentType definuje, jak byl štítek přiřazen:
- SensitivityLabelAssignmentType.Standard představuje výchozí nebo automaticky aplikovaný štítek.
- SensitivityLabelAssignmentType.Privileged představuje štítek aplikovaný na základě rozhodnutí uživatele, včetně ručně aplikovaných, doporučených a povinných štítků.
Třída SensitivityLabelContentType definuje označení spojené se štítkem:
| Hodnota | Význam |
|---|---|
| SensitivityLabelContentType.None | Štítek byl aplikován výchozí nebo automaticky. |
| SensitivityLabelContentType.Header | Označení obsahu záhlaví je spojeno se štítkem. |
| SensitivityLabelContentType.Footer | Označení obsahu zápatí je spojeno se štítkem. |
| SensitivityLabelContentType.Watermark | Označení obsahu vodoznaku je spojeno se štítkem. |
| SensitivityLabelContentType.Encryption | Šifrovací ochrana je spojena se štítkem. |
Více typů označení může být spojeno s jedním štítkem.
Seznam existujících citlivých štítků
Přečtěte moderní kolekci štítků pomocí Presentation.getSensitivityLabels a projděte ji. Následující příklad vypisuje každou vlastnost a označení obsahu uložené pro každý štítek:
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();
}
Přidat citlivý štítek s označením obsahu
Použijte SensitivityLabelCollection.add s identifikátorem štítku, identifikátorem místa, stavem povolení a metodou přiřazení. Po vrácení nového SensitivityLabel přidejte požadované hodnoty označení pomocí seznamu vráceného metodou SensitivityLabel.getContentMarkTypes.
Následující příklad přidává ručně vybraný štítek spojený se zápatím a vodoznakem a potom výsledek uloží jako PPTX:
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();
}
Aktualizovat citlivý štítek
Hodnoty SensitivityLabel jsou čitelné i zapisovatelné, s výjimkou toho, že seznam vrácený metodou SensitivityLabel.getContentMarkTypes se mění pomocí operací na tomto seznamu. Po nalezení požadovaného štítku můžete aktualizovat jeho identifikátor, identifikátor místa, stav povolení, metodu přiřazení, stav odstranění a typy označení obsahu. Uložte prezentaci, aby se změny zachovaly.
Následující příklad aktualizuje stav povolení a metodu přiřazení prvního štítku:
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();
}
Označit citlivý štítek jako odstraněný
Chcete‑li zachovat fakt, že byl štítek odstraněn, najděte jej a zavolejte SensitivityLabel.setRemoved s hodnotou true. Tím se položka štítku zachová a zaznamená se její stav odstranění. Pokud místo toho potřebujete položku z moderní kolekce odstranit, použijte SensitivityLabelCollection.removeAt; použijte SensitivityLabelCollection.clear k odstranění všech položek.
Následující příklad označuje konkrétní štítek jako odstraněný a uloží aktualizovanou prezentaci:
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();
}
Číst a migrovat staré MIP citlivé štítky
Starší pracovní postupy založené na MIP mohou ukládat metadata citlivých štítků do vlastních vlastností dokumentu místo moderní kolekce štítků. Přečtěte tato metadata pomocí DocumentProperties.getSensitivityLabels. Metoda analyzuje staré vlastní vlastnosti a vrací pole objektů SensitivityLabel.
Pro migraci metadat přidejte každý vrácený štítek do moderní SensitivityLabelCollection pomocí SensitivityLabelCollection.add. Protože přidání duplicitního identifikátoru štítku vyvolá výjimku, příklad kontroluje cílovou kolekci před kopírováním každého štítku. Můžete přidat další ověření, aby bylo jisté, že každý starý štítek stále existuje v aktuální politice Purview.
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();
}
Migrace zkopíruje analyzované objekty štítků do moderní kolekce. Není nutné vymazat všechny vlastní vlastnosti dokumentu, takže nesouvisející metadata dokumentu zůstávají nedotčena. Použijte Presentation.save s SaveFormat.Pptx k zapsání moderních metadat štítků do souboru PPTX.
Často kladené otázky
Vytváří přidání typu označení obsahu viditelný záhlaví, zápatí nebo vodoznak na snímcích?
Ne. Hodnoty přidané prostřednictvím seznamu vráceného metodou SensitivityLabel.getContentMarkTypes popisují označení spojená se štítkem. Nevytvářejí viditelný text ani tvary v prezentaci. Pokud váš pracovní postup musí tato označení zobrazit, přidejte odpovídající obsah snímků samostatně.
** Jaký je rozdíl mezi označením štítku jako odstraněného a jeho smazáním z kolekce?**
Volání SensitivityLabel.setRemoved s hodnotou true ponechává položku štítku a zaznamenává jeho stav odstranění. Volání SensitivityLabelCollection.removeAt štítek z moderní kolekce odstraní. Vyberte operaci, která odpovídá požadavkům vaší organizace na uchovávání metadat.
Může prezentace obsahovat jak stará MIP metadata, tak moderní citlivé štítky?
Ano. Staré štítky mohou zůstat ve vlastních vlastnostech dokumentu, zatímco moderní štítky jsou k dispozici pomocí Presentation.getSensitivityLabels. Použijte DocumentProperties.getSensitivityLabels k načtení starých metadat a migrujte jen platné štítky, které ještě nejsou v moderní kolekci.
Co se stane, když se štítek se stejným identifikátorem přidá vícekrát?
SensitivityLabelCollection.add vyvolá výjimku, pokud kolekce již obsahuje štítek se stejným identifikátorem. Před přidáním nebo migrací štítků zkontrolujte existující hodnoty vrácené metodou SensitivityLabel.getId.
Jaký výstupní formát použít k zachování aktualizovaných citlivých štítků?
Uložte prezentaci jako PPTX voláním Presentation.save s SaveFormat.Pptx, jak je uvedeno v příkladech výše.