Tags und benutzerdefinierte Daten in Präsentationen mit PHP verwalten
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 für in Präsentationen enthaltene Daten.
Ein Folie ist eines der Elemente in Präsentationen, ein Folien‑Teil enthält den Inhalt einer einzelnen Folie. Ein Folien‑Teil darf explizite Beziehungen zu vielen Teilen haben — wie benutzerdefinierten Tags — definiert durch ISO/IEC 29500.
Benutzerdefinierte Daten (spezifisch für eine Präsentation) oder Benutzer können als Tags (TagCollection) und CustomXmlParts (CustomXmlPartCollection) existieren.
Werte von Tags abrufen
In Folien entspricht ein Tag den Methoden DocumentProperties::getKeywords() und DocumentProperties::setKeywords(). Dieses Beispielcode zeigt, wie man den Wert eines Tags mit Aspose.Slides für PHP via Java für Presentation erhält:
$pres = new Presentation("pres.pptx");
try {
$keywords = $pres->getDocumentProperties()->getKeywords();
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
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 einer benutzerdefinierten Eigenschaft –
My Tag Value
Wenn Sie einige Präsentationen anhand einer bestimmten Regel oder Eigenschaft klassifizieren müssen, kann das Hinzufügen von Tags zu diesen Präsentationen von Nutzen sein. Zum Beispiel können Sie, wenn Sie alle Präsentationen aus nordamerikanischen Ländern zusammenfassen möchten, einen Nordamerika‑Tag erstellen und dann die entsprechenden Länder (USA, Mexiko und Kanada) als Werte zuweisen.
Dieses Beispielcode zeigt, wie man einen Tag zu einer Presentation mit Aspose.Slides für PHP via Java hinzufügt:
$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();
}
}
Tags können auch für Slide gesetzt werden:
$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();
}
}
Oder für ein einzelnes 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();
}
}
FAQ
Kann ich alle Tags aus einer Präsentation, Folie oder Form in einem Vorgang entfernen?
Ja. Die tag collection unterstützt eine 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 durchlaufen?
Verwenden Sie die remove(name)‑Operation auf der tag collection, 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 gibt ein Array aller Tag‑Namen zurück.