PHP használatával címkék és egyéni adatok kezelése a prezentációkban
Áttekintés
Ez a cikk bemutatja, hogyan működik az Aspose.Slides a címkékkel és az egyéni adatokkal a PowerPoint‑prezentációkban. Röviden ismerteti, hogyan tárolódnak az adatok a PPTX‑fájlokban, megjegyzi, hogy a bemutató‑specifikus adatok címkék és egyéni XML‑részek formájában létezhetnek, és leírja a címkéket mint kulcs‑érték karakterlánc párokat.
A cikk azt is bemutatja, hogyan olvashatók ki a címkeértékek, illetve hogyan adhatók hozzá címkék egy prezentációhoz, egy adott diára vagy egy alakzathoz. Emellett a cikk tárgyalja a gyakori címke‑kezelési feladatokat, például az összes címke törlését, egy címke nevének szerinti eltávolítását és a címkenevek listájának lekérését.
Adattárolás a prezentációs fájlokban
A PPTX‑fájlok – a .pptx kiterjesztésű elemek – a PresentationML formátumban tárolódnak, amely az Office Open XML specifikáció része. Az Office Open XML formátum határozza meg a prezentációkban lévő adatok szerkezetét.
A dia a prezentációk egyik eleme, a diarész egyetlen dia tartalmát tartalmazza. A diarésznek megengedett, hogy kifejezett kapcsolatokkal rendelkezzen számos részhez – például a felhasználó által definiált címkékhez –, amelyeket az ISO/IEC 29500 határoz meg.
Az egyéni adatok (egy prezentációra jellemző) vagy felhasználó létezhetnek címkékként (TagCollection) és CustomXmlParts‑ként (CustomXmlPartCollection).
Címkeértékek lekérése
A diákban egy címke a DocumentProperties::getKeywords() és a DocumentProperties::setKeywords() metódusoknak felel meg. Ez a mintakód bemutatja, hogyan lehet lekérni egy címke értékét az Aspose.Slides for PHP via Java segítségével a Presentation esetén:
$pres = new Presentation("pres.pptx");
try {
$keywords = $pres->getDocumentProperties()->getKeywords();
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Címkék hozzáadása a prezentációkhoz
Az Aspose.Slides lehetővé teszi címkék hozzáadását a prezentációkhoz. Egy címke általában két elemből áll:
- egy egyéni tulajdonság neve –
MyTag - az egyéni tulajdonság értéke –
My Tag Value
Ha bizonyos prezentációkat egy adott szabály vagy tulajdonság alapján szeretnél besorolni, akkor előnyös lehet címkék hozzáadása ezekhez a prezentációkhoz. Például, ha a Észak‑Amerikai országokból származó prezentációkat szeretnéd csoportosítani, létrehozhatsz egy „Észak‑Amerikai” címkét, és a releváns országokat (az USA‑t, Mexikót és Kanadát) értékként rendelheted hozzá.
Ez a mintakód bemutatja, hogyan adhatunk hozzá egy címkét egy Presentation használatával az Aspose.Slides for PHP via Java segítségével:
$pres = new Presentation("pres.pptx");
try {
$tags = $pres->getCustomData()->getTags();
$pres->getCustomData()->getTags()->set_Item("MyTag", "My Tag Value");
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
A címkék beállíthatók a Slide esetén is:
$pres = new Presentation();
try {
$slide = $pres->getSlides()->get_Item(0);
$slide->getCustomData()->getTags()->set_Item("tag", "value");
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Vagy bármely egyedi Shape:
$pres = new Presentation();
try {
$slide = $pres->getSlides()->get_Item(0);
$shape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 10, 10, 100, 50);
$shape->getTextFrame()->setText("My text");
$shape->getCustomData()->getTags()->set_Item("tag", "value");
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Korlátozások
A getCustomData()->getTags() segítségével a saját adatcímke‑gyűjteménybe hozzáadott címkék csak a PowerPoint‑fájlban tárolódnak. Amikor a prezentációt PDF‑be exportálják, ezek nem kerülnek át a PDF‑címkeszerkezetbe. Ennek következtében egy címkéként hozzárendelt egyéni azonosító nem kérhető le a címkézett PDF‑ből.
Megoldás: Egy egyéni azonosítót tárolhatsz az objektum Alt Text‑ében (például $shape->setAlternativeText("MyId")). PDF‑re exportálás után az Alt Text megjelenhet a PDF‑címkeszerkezetben.
GYIK
Eltávolíthatok minden címkét egy prezentációból, diából vagy alakzatból egyetlen műveletben?
Igen. A tag collection támogatja a clear műveletet, amely egyszerre törli az összes kulcs‑érték párt.
Hogyan törölhetek egyetlen címkét a nevének megadásával anélkül, hogy végig iterálnék a teljes gyűjteményen?
Használd a remove(name) műveletet a tag collection esetén a címke kulcs szerinti törléséhez.
Hogyan kérhetem le a címkék teljes nevének listáját elemzéshez vagy szűréshez?
Használd a getNamesOfTags metódust a tag collection; ez egy tömböt ad vissza az összes címkenévvel.