Управление тегами и пользовательскими данными

Хранение данных в файлах презентации

Файлы PPTX — это элементы с расширением .pptx — хранятся в формате PresentationML, который является частью спецификации Office Open XML. Формат Office Open XML определяет структуру данных, содержащихся в презентациях.

Каждый слайд является одним из элементов в презентациях, а часть слайда содержит содержимое одного слайда. Часть слайда может иметь явные связи с многими частями—такими как Пользовательские Теги—определенными в ISO/IEC 29500.

Пользовательские данные (специфичные для презентации) или пользователя могут существовать в качестве тегов (ITagCollection) и CustomXmlParts (ICustomXmlPartCollection).

Получение значений для тегов

В слайдах тег соответствует методам IDocumentProperties.getKeywords() и IDocumentProperties.setKeywords(). Этот пример кода показывает, как получить значение тега с помощью Aspose.Slides для PHP через Java для Presentation:

  $pres = new Presentation("pres.pptx");
  try {
    $keywords = $pres->getDocumentProperties()->getKeywords();
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Добавление тегов к презентациям

Aspose.Slides позволяет добавлять теги к презентациям. Тег обычно состоит из двух элементов:

  • название пользовательского свойства - MyTag
  • значение пользовательского свойства - My Tag Value

Если вам нужно классифицировать некоторые презентации на основе конкретного правила или свойства, вы можете извлечь выгоду из добавления тегов к этим презентациям. Например, если вы хотите категоризировать или объединить все презентации из стран Северной Америки, вы можете создать тег Северной Америки и затем назначить соответствующие страны (США, Мексика и Канада) в качестве значений.

Этот пример кода показывает, как добавить тег к Presentation с использованием Aspose.Slides для PHP через Java:

  $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();
    }
  }

Теги также могут быть установлены для Slide:

  $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();
    }
  }

Или для любого отдельного 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();
    }
  }