Verwalten von Tags und benutzerdefinierten Daten in Präsentationen mit C++

Datenspeicherung in Präsentationsdateien

PPTX-Dateien – Elemente mit der Erweiterung .pptx – werden im PresentationML-Format gespeichert, das Teil der Office Open XML‑Spezifikation ist. Das Office Open XML-Format definiert die Struktur der in Präsentationen enthaltenen Daten.

Da eine Folie eines der Elemente in Präsentationen ist, enthält ein Folienabschnitt den Inhalt einer einzelnen Folie. Ein Folienabschnitt darf explizite Beziehungen zu vielen Teilen haben – beispielsweise zu benutzerdefinierten Tags – die nach ISO/IEC 29500 definiert sind.

Benutzerdefinierte Daten (spezifisch für eine Präsentation) oder Benutzer können als Tags (ITagCollection) und CustomXmlParts (ICustomXmlPartCollection) existieren.

Werte von Tags abrufen

In Folien entspricht ein Tag der Eigenschaft IDocumentProperties.Keywords. Dieser Beispielcode zeigt, wie Sie den Wert eines Tags mit Aspose.Slides für C++ für Presentation:

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

Tags zu Präsentationen hinzufügen

Aspose.Slides ermöglicht das Hinzufügen von Tags zu Präsentationen. Ein Tag besteht typischerweise aus zwei Elementen:

  • der Name einer benutzerdefinierten Eigenschaft - MyTag
  • der Wert der benutzerdefinierten Eigenschaft - My Tag Value

Wenn Sie einige Präsentationen anhand einer bestimmten Regel oder Eigenschaft klassifizieren müssen, können Sie von der Hinzufügung von Tags zu diesen Präsentationen profitieren. Zum Beispiel, wenn Sie alle Präsentationen aus nordamerikanischen Ländern zusammenfassen möchten, können Sie ein Nordamerika‑Tag erstellen und dann die relevanten Länder (USA, Mexiko und Kanada) als Werte zuweisen.

Dieser Beispielcode zeigt, wie Sie ein Tag zu einer Presentation mit Aspose.Slides für C++ hinzufügen:

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");

Tags können auch für Slide festgelegt werden:

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

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

Oder für jede einzelne Shape:

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");

FAQ

Kann ich alle Tags aus einer Präsentation, Folie oder Form in einem Vorgang entfernen?

Ja. Die tag collection unterstützt die clear‑Operation, die alle Schlüssel‑Wert‑Paare auf einmal löscht.

Wie lösche ich ein einzelnes Tag anhand seines Namens, ohne die gesamte Sammlung zu iterieren?

Verwenden Sie die Remove(name)‑Operation auf TagCollection, um das Tag anhand seines Schlüssels zu löschen.

Wie kann ich die vollständige Liste der Tag-Namen für Analysen oder Filterungen abrufen?

Verwenden Sie GetNamesOfTags auf der tag collection; sie liefert ein Array aller Tag-Namen.