Szenzitivitási címkék kezelése PowerPoint prezentációkban PHP-ben
Áttekintés
A Microsoft Purview szenzitivitási címkék segítik a szervezeteket a dokumentumok osztályozásában és irányításában. Automatizált prezentációfeldolgozás során egy alkalmazásnak meg kell őriznie egy meglévő címkét, egy szabályzat által kiválasztott címkét alkalmaznia, frissítenie annak állapotát, vagy migrálnia kell a régebbi Microsoft Information Protection (MIP) munkafolyamat által írt címke metaadatokat.
Az Aspose.Slides for PHP via Java a modern szenzitivitási címke metaadatokat a Presentation::getSensitivityLabels metóduson keresztül teszi elérhetővé. Ez a metódus egy SensitivityLabelCollection ad vissza, amelyet a prezentáció PPTX formátumban történő mentése előtt ellenőrizni és módosítani lehet.
Megjegyzés
A szenzitivitási címke azonosítók és a szabályzati információk a Microsoft Purview beállításában vannak definiálva. Ellenőrizze a címkék elérhetőségét és a szabályzat követelményeit a környezetében, mielőtt metaadatot adna hozzá vagy migrálná. A SensitivityLabel::getContentMarkTypes értékek leírják a címkéhez társított tartalomjelöléseket; ezek önmagukban nem adnak hozzá látható szöveget vagy alakzatot a diákhoz.Értse meg a szenzitivitási címke tulajdonságait
Minden SensitivityLabel a következő metaadatokat tartalmazza:
| Módszerek | Cél |
|---|---|
| SensitivityLabel::getId és SensitivityLabel::setId | A szenzitivitási címke azonosítójának lekérdezése vagy beállítása a Purview szabályzatban. |
| SensitivityLabel::getSiteId és SensitivityLabel::setSiteId | A címke szabályzathoz kapcsolódó webhely lekérdezése vagy beállítása. |
| SensitivityLabel::isEnabled és SensitivityLabel::setEnabled | A címke engedélyezett állapotának lekérdezése vagy beállítása. |
| SensitivityLabel::isRemoved és SensitivityLabel::setRemoved | A címke eltávolításra került-e állapot lekérdezése vagy beállítása. Állítsa true-ra, ha a eltávolítási állapotot a metaadatban meg kell őrizni. |
| SensitivityLabel::getAssignmentMethodType és SensitivityLabel::setAssignmentMethodType | A címke automatikus vagy felhasználói döntés alapján történő alkalmazásának lekérdezése vagy beállítása. |
| SensitivityLabel::getContentMarkTypes | A címkéhez kapcsolódó tartalomjelölés típusok lekérdezése. |
A SensitivityLabelAssignmentType osztály meghatározza, hogyan lett egy címke hozzárendelve:
- SensitivityLabelAssignmentType::Standard a alapértelmezett vagy automatikusan alkalmazott címkét jelöli.
- SensitivityLabelAssignmentType::Privileged felhasználói döntés alapján alkalmazott címkét jelöl, beleértve a manuálisan alkalmazott, ajánlott és kötelező címkéket.
A SensitivityLabelContentType osztály definiálja a címkéhez kapcsolódó jelölést:
| Érték | Jelentés |
|---|---|
| SensitivityLabelContentType::None | A címke alapértelmezett vagy automatikus módon lett alkalmazva. |
| SensitivityLabelContentType::Header | Fejléc tartalomjelölés van társítva a címkéhez. |
| SensitivityLabelContentType::Footer | Lábléc tartalomjelölés van társítva a címkéhez. |
| SensitivityLabelContentType::Watermark | Vízjel tartalomjelölés van társítva a címkéhez. |
| SensitivityLabelContentType::Encryption | Titkosítási védelem van társítva a címkéhez. |
Több jelöléstípus is társítható egy címkéhez.
Létező szenzitivitási címkék listázása
Olvassa be a modern címke gyűjteményt a Presentation::getSensitivityLabels metódussal, és sorolja fel. Az alábbi példa minden tulajdonságot és a címkehez tárolt tartalomjelölést listáz:
$presentation = new Presentation("presentation.pptx");
try {
$sensitivityLabels = $presentation->getSensitivityLabels();
$sensitivityLabelCount = java_values($sensitivityLabels->getCount());
for ($labelIndex = 0; $labelIndex < $sensitivityLabelCount; $labelIndex++) {
$sensitivityLabel = $sensitivityLabels->get_Item($labelIndex);
echo "Label ID: " . java_values($sensitivityLabel->getId()) . PHP_EOL;
echo "Site ID: " . java_values($sensitivityLabel->getSiteId()->toString()) . PHP_EOL;
echo "Enabled: " . (java_values($sensitivityLabel->isEnabled()) ? "true" : "false") . PHP_EOL;
echo "Removed: " . (java_values($sensitivityLabel->isRemoved()) ? "true" : "false") . PHP_EOL;
echo "Assignment method: " . java_values($sensitivityLabel->getAssignmentMethodType()) . PHP_EOL;
$contentMarkIterator = $sensitivityLabel->getContentMarkTypes()->iterator();
while (java_values($contentMarkIterator->hasNext())) {
$contentMarkType = java_values($contentMarkIterator->next());
echo "Content marking: " . $contentMarkType . PHP_EOL;
}
}
} finally {
$presentation->dispose();
}
Szenzitivitási címke hozzáadása tartalomjelöléssel
Használja a SensitivityLabelCollection::add metódust a címke azonosítóval, a webhely azonosítóval, az engedélyezett állapottal és a hozzárendelési módszerrel. A metódus visszaadja az új SensitivityLabel objektumot, majd adja hozzá a szükséges jelölésértékeket a SensitivityLabel::getContentMarkTypes által visszaadott listán keresztül.
Az alábbi példa manuálisan kiválasztott címkét ad hozzá, amelyhez lábléc és vízjel jelölések vannak társítva, majd elmenti az eredményt PPTX formátumban:
$presentation = new Presentation("presentation.pptx");
try {
$sensitivityLabels = $presentation->getSensitivityLabels();
$labelIdentifier = "{11111111-2222-3333-4444-555555555555}";
$UUID = new JavaClass("java.util.UUID");
$siteIdentifier = $UUID->fromString("aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee");
$isEnabled = true;
$assignmentMethod = SensitivityLabelAssignmentType::Privileged;
$sensitivityLabel = $sensitivityLabels->add(
$labelIdentifier,
$siteIdentifier,
$isEnabled,
$assignmentMethod
);
$contentMarkTypes = $sensitivityLabel->getContentMarkTypes();
$contentMarkTypes->addItem(SensitivityLabelContentType::Footer);
$contentMarkTypes->addItem(SensitivityLabelContentType::Watermark);
$presentation->save("presentation_with_label.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Szenzitivitási címke frissítése
A SensitivityLabel értékek olvashatóak/írhatóak, kivéve a SensitivityLabel::getContentMarkTypes által visszaadott listát, amelyet a lista műveleteken keresztül módosítanak. A kívánt címke megtalálása után frissítheti annak azonosítóját, webhely azonosítóját, engedélyezett állapotát, hozzárendelési módját, eltávolítási állapotát és tartalomjelölés típusait. Mentse a prezentációt a változások rögzítéséhez.
Az alábbi példa frissíti az első címke engedélyezett állapotát és hozzárendelési módját:
$presentation = new Presentation("presentation.pptx");
try {
$sensitivityLabels = $presentation->getSensitivityLabels();
$sensitivityLabelCount = java_values($sensitivityLabels->getCount());
if ($sensitivityLabelCount > 0) {
$sensitivityLabel = $sensitivityLabels->get_Item(0);
$sensitivityLabel->setEnabled(true);
$sensitivityLabel->setAssignmentMethodType(SensitivityLabelAssignmentType::Privileged);
}
$presentation->save("presentation_with_updated_label.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Szenzitivitási címke eltávolítva jelölése
A címke eltávolításának megőrzéséhez találja meg a címkét, és hívja meg a SensitivityLabel::setRemoved metódust true értékkel. Ez megőrzi a címke bejegyzést miközben rögzíti az eltávolított állapotát. Ha ehelyett egy bejegyzést szeretne törölni a modern gyűjteményből, használja a SensitivityLabelCollection::removeAt metódust; a SensitivityLabelCollection::clear metódussal minden bejegyzést törölhet.
Az alábbi példa egy konkrét címkét eltávolítottként jelöl, és elmenti a frissített prezentációt:
$presentation = new Presentation("presentation.pptx");
try {
$sensitivityLabels = $presentation->getSensitivityLabels();
$targetLabelIdentifier = "{11111111-2222-3333-4444-555555555555}";
$sensitivityLabelCount = java_values($sensitivityLabels->getCount());
for ($labelIndex = 0; $labelIndex < $sensitivityLabelCount; $labelIndex++) {
$sensitivityLabel = $sensitivityLabels->get_Item($labelIndex);
$labelIdentifier = java_values($sensitivityLabel->getId());
$isTargetLabel = strcasecmp($labelIdentifier, $targetLabelIdentifier) === 0;
if ($isTargetLabel) {
$sensitivityLabel->setRemoved(true);
break;
}
}
$presentation->save("presentation_with_removed_label.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Régi MIP szenzitivitási címkék beolvasása és migrálása
A régebbi MIP-alapú munkafolyamatok a szenzitivitási címke metaadatokat egyedi dokumentumtulajdonságokban tárolhatják a modern címke gyűjtemény helyett. Olvassa be ezeket a metaadatokat a DocumentProperties::getSensitivityLabels metódussal. A metódus feldolgozza a régi egyedi tulajdonságokat, és egy Java tömböt ad vissza SensitivityLabel objektumokkal.
A metaadatok migrálásához adja hozzá minden visszaadott címkét a modern SensitivityLabelCollection gyűjteményhez a SensitivityLabelCollection::add használatával. Mivel egy duplikált címke azonosító hozzáadása kivételt eredményez, a példa ellenőrzi a célgyűjteményt minden címke másolása előtt. További ellenőrzést is végezhet annak biztosítására, hogy minden régi címke még létezik-e az aktuális Purview szabályzatban.
A migráció átmásolja a feldolgozott címkeobjektumokat a modern gyűjteménybe. Nem szükséges az összes egyedi dokumentumtulajdonság törlése, így a nem kapcsolódó dokumentum metaadatok érintetlenek maradnak. Használja a Presentation::save metódust a SaveFormat::Pptx paraméterrel, hogy a modern címke metaadatokat PPTX fájlba írja.
$presentation = new Presentation("presentation_with_legacy_labels.pptx");
try {
$legacySensitivityLabels = $presentation->getDocumentProperties()->getSensitivityLabels();
$modernSensitivityLabels = $presentation->getSensitivityLabels();
$Array = new JavaClass("java.lang.reflect.Array");
$legacyLabelCount = java_values($Array->getLength($legacySensitivityLabels));
for ($legacyLabelIndex = 0; $legacyLabelIndex < $legacyLabelCount; $legacyLabelIndex++) {
$legacySensitivityLabel = $legacySensitivityLabels[$legacyLabelIndex];
$legacyLabelIdentifier = java_values($legacySensitivityLabel->getId());
$labelAlreadyExists = false;
$modernLabelCount = java_values($modernSensitivityLabels->getCount());
for ($modernLabelIndex = 0; $modernLabelIndex < $modernLabelCount; $modernLabelIndex++) {
$modernSensitivityLabel = $modernSensitivityLabels->get_Item($modernLabelIndex);
$modernLabelIdentifier = java_values($modernSensitivityLabel->getId());
$labelAlreadyExists = strcasecmp(
$modernLabelIdentifier,
$legacyLabelIdentifier
) === 0;
if ($labelAlreadyExists) {
break;
}
}
if (!$labelAlreadyExists) {
$modernSensitivityLabels->add($legacySensitivityLabel);
}
}
$presentation->save("presentation_with_modern_labels.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
GyIK
A tartalomjelölés típus hozzáadása látható fejlécet, láblécet vagy vízjelet hoz létre a diákon?
Nem. A SensitivityLabel::getContentMarkTypes lista által hozzáadott értékek a címkehez tartozó jelöléseket írják le; ezek önmagukban nem hoznak létre látható szöveget vagy alakzatot a prezentációban. Ha a munkafolyamatnak meg kell jelenítenie ezeket a jelöléseket, adja hozzá a megfelelő dia tartalmat külön.
Mi a különbség a címke eltávolítottként jelölése és a gyűjteményből való törlése között?
A SensitivityLabel::setRemoved true értékkel való meghívása megtartja a címke bejegyzést és rögzíti az eltávolított állapotát. A SensitivityLabelCollection::removeAt meghívása törli a bejegyzést a modern gyűjteményből. Válassza azt a műveletet, amely megfelel szervezete metaadat-megőrzési követelményeinek.
Tartalmazhat egy prezentáció egyszerre régi MIP metaadatokat és modern szenzitivitási címkéket?
Igen. A régi címkék megmaradhatnak az egyedi dokumentumtulajdonságokban, míg a modern címkék a Presentation::getSensitivityLabels segítségével érhetők el. Használja a DocumentProperties::getSensitivityLabels metódust a régi metaadatok beolvasásához, és csak a modern gyűjteményben még nem létező, érvényes címkéket migrálja.
Mi történik, ha ugyanazzal az azonosítóval több címkét adunk hozzá?
A SensitivityLabelCollection::add kivételt dob, ha a gyűjtemény már tartalmaz egy azonos azonosítóval rendelkező címkét. Ellenőrizze a SensitivityLabel::getId által visszaadott meglévő értékeket, mielőtt címkét adna hozzá vagy migrálná.
Melyik kimeneti formátumot kell használni a frissített szenzitivitási címkék megőrzéséhez?
Mentse a prezentációt PPTX formátumban a Presentation::save SaveFormat::Pptx paraméterrel, ahogyan a fenti példákban is látható.