Címkék és egyéni adatok kezelése bemutatókban C++ használatával

Áttekintés

Ez a cikk bemutatja, hogyan működik az Aspose.Slides a címkékkel és egyéni adatokkal a PowerPoint‑bemutatókban. Röviden ismerteti, hogyan tárolódnak az adatok a PPTX‑fájlokban, megjegyzi, hogy a bemutatóra jellemző adatok címkék és egyéni XML‑részek formájában is létezhetnek, és leírja a címkéket kulcs‑érték string párokként.

Emellett bemutatja, hogyan lehet címkeértékeket kiolvasni, illetve címkéket hozzáadni egy bemutatóhoz, egy adott diához vagy egy alakzathoz. Továbbá tárgyalja a gyakori címke‑kezelési feladatokat, például az összes címke törlését, egy címke eltávolítását név szerint, illetve a címkenév‑lista lekérését.

Adattárolás a bemutató fájlokban

A .pptx kiterjesztésű PPTX‑fájlok a PresentationML formátumban vannak tárolva, amely az Office Open XML specifikáció része. Az Office Open XML formátum határozza meg a bemutatókban tárolt adatok szerkezetét.

A dia a bemutatók elemei közé tartozik, egy dia‑rész egyetlen dia tartalmát tartalmazza. Egy dia‑résznek explicite kapcsolatai lehetnek sok részhez – például a felhasználó által definiált címkékhez – amelyeket az ISO/IEC 29500 definiál.

Egyéni adat (a bemutatóra specifikus) vagy felhasználó létezhet címkeként (ITagCollection) és CustomXmlParts‑ként (ICustomXmlPartCollection).

Címkék értékeinek lekérése

A slide‑okban egy címke megfelel az IDocumentProperties.Keywords tulajdonságnak. Ez a mintakód megmutatja, hogyan olvasható ki egy címke értéke az Aspose.Slides for C++ használatával a Presentation esetén:

auto pres = System::MakeObject<Presentation>(u"pres.pptx");
System::String keywords = pres->get_DocumentProperties()->get_Keywords();

Címkék hozzáadása a bemutatókhoz

Az Aspose.Slides lehetővé teszi címkék hozzáadását a bemutatókhoz. Egy címke általában két elemből áll:

  • a egyéni tulajdonság neve - MyTag
  • a egyéni tulajdonság értéke - My Tag Value

Ha szeretné egyes bemutatókat egy adott szabály vagy tulajdonság alapján osztályozni, akkor hasznos lehet a címkék használata. Például, ha az összes észak‑amerikai országból származó bemutatót egy csoportba szeretné rendezni, létrehozhat egy „North American” címkét, és hozzárendelheti a megfelelő országokat (az USA‑t, Mexikót és Kanadát) értékként.

Ez a mintakód megmutatja, hogyan adhat hozzá egy címkét egy Presentation objektumhoz az Aspose.Slides for C++ használatával:

auto pres = System::MakeObject<Presentation>(u"pres.pptx");

System::SharedPtr<ITagCollection> tags = pres->get_CustomData()->get_Tags();
pres->get_CustomData()->get_Tags()->idx_set(u"MyTag", u"My Tag Value");

Címkék állíthatók be Slide esetén is:

auto pres = System::MakeObject<Presentation>();

auto slide = pres->get_Slides()->idx_get(0);
slide->get_CustomData()->get_Tags()->idx_set(u"tag", u"value");

Vagy egy adott Shape esetén:

auto pres = System::MakeObject<Presentation>();

auto slide = pres->get_Slides()->idx_get(0);
auto shape = slide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 10.0f, 10.0f, 100.0f, 50.0f);
shape->get_TextFrame()->set_Text(u"My text");
shape->get_CustomData()->get_Tags()->idx_set(u"tag", u"value");

Korlátozások

A get_CustomData()->get_Tags() segítségével a saját adatcímke‑gyűjteménybe felvett címkék csak a PowerPoint‑fájlban tárolódnak. Nem kerülnek át a PDF‑címke‑struktúrába, amikor a bemutató PDF‑be exportálódik. Ennek következtében a címkeként hozzárendelt egyéni azonosító nem hívható le a címkézett PDF‑ből.

Megoldás: A saját azonosítót tárolhatja az objektum Alt Text‑ében (például shape->set_AlternativeText(u"MyId")). PDF‑export után az Alt Text megjelenhet a PDF‑címke‑struktúrában.

GYIK

Eltávolíthatok minden címkét egy bemutatóból, diából vagy alakzatból egyetlen művelettel?

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 neve alapján anélkül, hogy végigjárnám a teljes gyűjteményt?

Használja a Remove(name) műveletet a TagCollection‑n, hogy a kulcs szerint törölje a címkét.

Hogyan kérhetem le a címkenév‑lista teljes sorát elemzés vagy szűrés céljából?

Használja a GetNamesOfTags metódust a tag collection‑n; ez egy tömböt ad vissza az összes címkenévvel.