Открыть сервис

PresentationML

PresentationML — это язык разметки на основе XML, предназначенный для описания содержимого презентаций, создаваемых в формате Office Open XML (OOXML). PresentationML является частью стандарта ISO/IEC 29500 и ECMA-376, который определяет формат файлов для офисных приложений, таких как Microsoft PowerPoint. Основная цель PresentationML — обеспечить структурированное хранение слайдов, их содержимого (текста, изображений, таблиц, диаграмм), форматирования, анимации и переходов между слайдами в виде, независимом от конкретного программного обеспечения.

История и стандартизация

PresentationML был разработан корпорацией Microsoft в рамках перехода от двоичных форматов файлов (например, .ppt) к открытым форматам на основе XML. Первая версия формата была представлена в 2006 году вместе с пакетом Microsoft Office 2007. В 2008 году стандарт Office Open XML (включая PresentationML) был принят как международный стандарт ISO/IEC 29500. В России данный стандарт также признан и используется в различных офисных пакетах, включая LibreOffice и OnlyOffice, которые поддерживают импорт и экспорт файлов формата .pptx.

PresentationML описывает не только структуру презентации, но и её внешний вид, что позволяет сохранять визуальное оформление при переносе между разными программами, поддерживающими OOXML. Однако полная совместимость не всегда достигается из-за различий в реализации спецификации.

Структура файла .pptx

Файл презентации в формате .pptx представляет собой ZIP-архив, содержащий несколько XML-файлов и папок. Основные компоненты:

  • Presentation.xml — корневой файл, описывающий общую структуру презентации: размер слайдов, список слайдов, порядок их отображения, а также ссылки на другие части (например, темы оформления).
  • **Slide*.xml** — файлы отдельных слайдов, содержащие их содержимое и форматирование.
  • **SlideLayout*.xml** — файлы макетов слайдов, которые определяют расположение текстовых полей, изображений и других элементов на слайде.
  • **SlideMaster*.xml** — файлы образцов слайдов (мастер-слайдов), задающие общие стили и элементы, которые наследуются всеми слайдами.
  • **Theme*.xml** — файлы тем оформления, содержащие цвета, шрифты и эффекты, используемые в презентации.
  • Media/ — папка, содержащая встроенные изображения, видео и аудиофайлы.
  • [Content_Types].xml — файл, описывающий типы содержимого (MIME-типы) для каждого файла в архиве.
  • _rels/ — папка с файлами отношений, которые связывают различные части архива (например, связь слайда с его макетом).

Синтаксис и основные элементы

PresentationML использует пространство имен http://schemas.openxmlformats.org/presentationml/2006/main (префикс p`). Основные элементы включают:

  • <p:presentation> — корневой элемент файла Presentation.xml.
  • <p:sldId> — идентификатор слайда, который связывает слайд с его файлом.
  • <p:sp> — элемент, представляющий фигуру (shape) на слайде, например, текстовое поле, прямоугольник или изображение.
  • <p:txBody> — тело текстового блока, содержащее абзацы (<a:p>) и прогоны (<a:r>), которые определяют форматирование текста.
  • <p:grpSp> — группа фигур, объединяющая несколько элементов.
  • <p:anim> — элемент, описывающий анимацию объектов на слайде.
  • <p:transition> — элемент, задающий эффект перехода между слайдами.

Пример фрагмента XML

``xml <p:sld xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main"; xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">; <p:sp> <p:nvSpPr> <p:cNvPr id="2" name="Заголовок 1"/> </p:nvSpPr> <p:spPr/> <p:txBody> <a:p> <a:r> <a:rPr lang="ru-RU" sz="2400"/> <a:t>Пример текста</a:t> </a:r> </a:p> </p:txBody> </p:sp> </p:sld> ``

В этом примере создаётся фигура с текстом «Пример текста», размер шрифта 24 пункта (sz=2400 соответствует 24 pt в единицах 1/100 pt).

Классификация и типы содержимого

PresentationML поддерживает широкий спектр типов содержимого:

  • Текстовые блоки — обычный текст, маркированные и нумерованные списки, таблицы.
  • Изображения — растровые (JPEG, PNG) и векторные (EMF, WMF) графические файлы, встраиваемые в слайды.
  • Диаграммы — графики и диаграммы, созданные с помощью DrawingML (часть OOXML).
  • Таблицы — таблицы с ячейками, объединением строк и столбцов.
  • Медиа — аудио- и видеофайлы, которые могут быть встроены или связаны.
  • Анимация и переходы — эффекты движения объектов и смены слайдов.

Применение и значение

PresentationML используется во всех современных версиях Microsoft PowerPoint (начиная с 2007 года), а также в других офисных пакетах, поддерживающих формат .pptx. Основные области применения:

  • Создание и редактирование презентаций — пользователи могут создавать слайды с богатым форматированием, анимацией и мультимедиа.
  • Автоматизация — разработчики могут программно генерировать или изменять презентации с помощью библиотек, таких как Apache POI, Open XML SDK, python-pptx и других.
  • Интеграция — формат позволяет обмениваться презентациями между разными программами, хотя полная совместимость не всегда гарантируется из-за различий в реализации.

Интересные факты

  • Файл .pptx, созданный в PowerPoint 2007, может содержать до 10 000 слайдов, хотя на практике это ограничение редко используется.
  • PresentationML поддерживает встраивание шрифтов, что позволяет сохранять внешний вид текста на компьютерах, где эти шрифты не установлены.
  • В 2019 году Microsoft добавила поддержку 3D-моделей в PresentationML, что позволяет вставлять трёхмерные объекты в слайды.

Критика и ограничения

Несмотря на открытость стандарта, PresentationML подвергается критике за сложность и избыточность. Например, для описания простого текстового поля может потребоваться несколько вложенных XML-элементов, что затрудняет ручное редактирование. Кроме того, некоторые функции, такие как сложная анимация или макросы VBA, не полностью переносимы между различными программами, поддерживающими OOXML. В России также отмечаются проблемы с отображением кириллических шрифтов в некоторых сторонних редакторах, если они не встроены в файл.

Источники

  1. ISO/IEC 29500-1:2016 — Information technology — Document description and processing languages — Office Open XML File Formats — Part 1: Fundamentals and Markup Language Reference.
  2. ECMA-376 — Office Open XML File Formats, 5th edition (2021).
  3. Документация Microsoft: Introduction to Office Open XML (https://learn.microsoft.com/en-us/office/open-xml/open-xml-overview).
  4. Статья «Office Open XML» на сайте Википедии (русскоязычная версия).
  5. Материалы сообщества разработчиков Open XML SDK (https://github.com/OfficeDev/Open-XML-SDK).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →