Gérer les balises et les données personnalisées dans les présentations avec Java

Stockage de données dans les fichiers de présentation

Les fichiers PPTX—éléments portant l extension .pptx—sont stockés au format PresentationML, qui fait partie de la spécification Office Open XML. Le format Office Open XML définit la structure des données contenues dans les présentations.

Avec une diapositive étant l un des éléments des présentations, une slide part contient le contenu d une seule diapositive. Une slide part est autorisée à avoir des relations explicites avec de nombreuses parties—telles que les User Defined Tags—définies par ISO/IEC 29500.

Les données personnalisées (spécifiques à une présentation) ou utilisateur peuvent exister sous forme de balises (ITagCollection) et de CustomXmlParts (ICustomXmlPartCollection).

Obtenir les valeurs des balises

Dans les diapositives, une balise correspond aux méthodes IDocumentProperties.getKeywords() et IDocumentProperties.setKeywords() . Ce code d exemple montre comment obtenir la valeur d une balise avec Aspose.Slides for Java pour Presentation :

Presentation pres = new Presentation("pres.pptx");
try{
    String keywords = pres.getDocumentProperties().getKeywords();
} finally {
    if (pres != null) pres.dispose();
}

Ajouter des balises aux présentations

Aspose.Slides vous permet d ajouter des balises aux présentations. Une balise se compose généralement de deux éléments :

  • le nom d une propriété personnalisée - MyTag
  • la valeur de la propriété personnalisée - My Tag Value

Si vous devez classer certaines présentations selon une règle ou une propriété spécifique, vous pouvez alors tirer parti de l ajout de balises à ces présentations. Par exemple, si vous souhaitez regrouper toutes les présentations provenant des pays d Amérique du Nord, vous pouvez créer une balise North American puis attribuer les pays concernés (U.S., Mexico et Canada) comme valeurs.

Ce code d exemple montre comment ajouter une balise à une Presentation en utilisant Aspose.Slides for Java :

Presentation pres = new Presentation("pres.pptx");
try {
    ITagCollection tags = pres.getCustomData().getTags();
    pres.getCustomData().getTags().set_Item("MyTag", "My Tag Value");
} finally {
    if (pres != null) pres.dispose();
}

Les balises peuvent également être définies pour Slide :

Presentation pres = new Presentation();
try {
    ISlide slide = pres.getSlides().get_Item(0);
    slide.getCustomData().getTags().set_Item("tag", "value");
} finally {
    if (pres != null) pres.dispose();
}

Ou tout Shape individuel :

Presentation pres = new Presentation();
try {
    ISlide slide = pres.getSlides().get_Item(0);
    IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 10, 10, 100, 50);
    shape.getTextFrame().setText("My text");
    shape.getCustomData().getTags().set_Item("tag", "value");
} finally {
    if (pres != null) pres.dispose();
}

FAQ

Puis-je supprimer toutes les balises d une présentation, d une diapositive ou d une forme en une seule opération ?

Oui. La tag collection prend en charge l opération clear qui supprime toutes les paires clé-valeur d un seul coup.

Comment supprimer une seule balise par son nom sans parcourir toute la collection ?

Utilisez l opération Remove(name) sur la tag collection pour supprimer la balise par sa clé.

Comment récupérer la liste complète des noms de balises pour l analyse ou le filtrage ?

Utilisez getNamesOfTags sur la tag collection; elle renvoie un tableau contenant tous les noms de balises.