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/mainp`). Основные элементы включают: (префикс
<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. В России также отмечаются проблемы с отображением кириллических шрифтов в некоторых сторонних редакторах, если они не встроены в файл.
Источники
- ISO/IEC 29500-1:2016 — Information technology — Document description and processing languages — Office Open XML File Formats — Part 1: Fundamentals and Markup Language Reference.
- ECMA-376 — Office Open XML File Formats, 5th edition (2021).
- Документация Microsoft: Introduction to Office Open XML (https://learn.microsoft.com/en-us/office/open-xml/open-xml-overview).
- Статья «Office Open XML» на сайте Википедии (русскоязычная версия).
- Материалы сообщества разработчиков Open XML SDK (https://github.com/OfficeDev/Open-XML-SDK).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →