Перейти к содержанию

ГОСТ Р ИСО/МЭК 26300—2010/Раздел 9

Материал из Викитеки — свободной библиотеки
ГОСТ Р ИСО/МЭК 26300—2010 «Информационная технология. Формат Open Document для офисных приложений (OpenDocument) v1.0» — Раздел 9


9 Графическое содержимое[править]

В этом разделе предоставлена спецификация для базовых элементов графических приложений, таких как приложения для рисования и подготовки презентаций, и для графических объектов, содержащихся в неграфических приложениях, таких как текстовые процессоры и электронные таблицы.

9.1 Расширенные свойства страниц для графических приложений[править]

9.1.1 Мастер-страница тезисов[править]

Для приложений, которые поддерживают печать тезисов, этот элемент является шаблоном для автоматической генерации страниц тезисов. Элемент <style:handout-master> может содержать любые типы векторных фигур. Наиболее полезная векторная фигура — это <draw:page-thumbnail>, которая заменяется текущими страницами из документа. Элемент <style:handout-master> содержится в элементе <office:master-styles>. Элемент <office:master-styles> не должен содержать более одного элемента <style:handout-master>.

<define name="style-handout-master">
    <element name="style:handout-master">
        <ref name="common-presentation-header-footer-attlist"/>
        <ref name="style-handout-master-attlist"/>
        <zeroOrMore>
            <ref name="shape"/>
        </zeroOrMore>
    </element>
</define>

С элементом <style:handout-master> могут быть связаны следующие атрибуты:

  • разметка страницы презентации (объекты заполнения);
  • разметка страницы (размер страницы, поля и т. д.);
  • стиль страницы;
  • объявление верхнего колонтитула;
  • объявление нижнего колонтитула;
  • объявление даты и времени.
Разметка страницы презентации[править]

Атрибут presentation:presentation-page-layout-name ссылается на элемент <style:presentation-page-layout> (см. раздел 14.15 для получения информации об элементе разметки страницы презентации). Это необязательный атрибут.

<define name="style-handout-master-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:presentation-page-layout-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
Разметка страницы[править]

Атрибут style:page-layout-name определяет разметку страницы, которая состоит из размеров, обрамления и ориентации страницы мастер-страницы тезисов (см. раздел 14.3 для подробностей о разметке страницы).

<define name="style-handout-master-attlist" combine="interleave">
    <attribute name="style:page-layout-name">
        <ref name="styleNameRef"/>
    </attribute>
</define>
Стиль страницы[править]

Атрибут draw:style-name назначает дополнительные атрибуты форматирования для мастер-страницы тезисов путем присваивания стиля графической страницы. Это необязательный атрибут. Фиксированным семейством для стилей страницы является drawing-page.

<define name="style-handout-master-attlist" combine="interleave">
    <optional>
        <attribute name="draw:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
Объявление верхнего колонтитула[править]

Атрибут presentation:use-header-name определяет имя объявления поля верхнего колонтитула (см. раздел 9.11.2), которое используется для всех полей верхнего колонтитула (см. раздел 9.10.1), отображаемых на мастер-странице тезисов (см. также раздел 9.1.4).

Объявление нижнего колонтитула[править]

Атрибут presentation:use-footer-name определяет имя объявления поля нижнего колонтитула (см. раздел 9.11.3), которое используется для всех полей нижнего колонтитула (см. раздел 9.10.2), отображаемых на мастер-странице тезисов (см. также раздел 9.1.4).

Объявление даты и времени[править]

Атрибут presentation:use-date-time-name определяет имя объявления поля даты и времени (см. раздел 9.11.4), которое используется для всех полей даты и времени (см. раздел 9.10.3), отображаемых на мастер-странице тезисов (см. также раздел 9.1.4).

9.1.2 Множества слоев[править]

Элемент <draw:layer-set> может содержаться в мастер-стилях графического приложения. Он определяет множество слоев. Слои группируют графические объекты. Графические объекты могут быть отнесены к этим слоям с помощью атрибута draw:layer-name.

<define name="draw-layer-set">
    <element name="draw:layer-set">
        <zeroOrMore>
            <ref name="draw-layer"/>
        </zeroOrMore>
    </element>
</define>

9.1.3 Слой[править]

Элемент <draw:layer> определяет одиночный слой.

<define name="draw-layer">
    <element name="draw:layer">
        <ref name="draw-layer-attlist"/>
        <empty/>
    </element>
</define>
Имя[править]

Каждый элемент <draw:layer> определен и на него можно сослаться по его имени, которое содержится в атрибуте draw:name. Каждый графический объект внутри графического документа или документа презентации может быть отнесен к слою. Слои виртуально группируют объекты. Каждый объект, отнесенный к слою, наследует настройки слоя.

<define name="draw-layer-attlist" combine="interleave">
    <attribute name="draw:name">
        <ref name="string"/>
    </attribute>
</define>
Защита[править]

Атрибут draw:protected определяет, защищен ли от модификации графический объект, содержащийся в слое.

<define name="draw-layer-attlist" combine="interleave">
    <optional>
        <attribute name="draw:protected" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Отображение[править]

Атрибут draw:display определяет, будет ли графический объект, содержащийся в слое, видимым на экране и/или при печати.

<define name="draw-layer-attlist" combine="interleave">
    <optional>
        <attribute name="draw:display" a:defaultValue="always">
            <choice>
                <value>always</value>
                <value>screen</value>
                <value>printer</value>
                <value>none</value>
            </choice>
        </attribute>
    </optional>
</define>

9.1.4 Графические страницы[править]

Элемент <draw:page> является контейнером для содержимого в графическом документе или документе презентации. Графические страницы используются для следующего:

Мастер-страница должна быть назначена для каждой графической страницы.

<define name="draw-page">
    <element name="draw:page">
        <ref name="common-presentation-header-footer-attlist"/>
        <ref name="draw-page-attlist"/>
        <optional>
            <ref name="office-forms"/>
        </optional>
        <zeroOrMore>
            <ref name="shape"/>
        </zeroOrMore>
        <optional>
            <choice>
                <ref name="presentation-animations"/>
                <ref name="animation-element"/>
            </choice>
        </optional>
        <optional>
            <ref name="presentation-notes"/>
        </optional>
    </element>
</define>

С элементом <draw:page> могут быть связаны следующие атрибуты:

  • имя страницы;
  • стиль страницы;
  • мастер-страница;
  • разметка страницы презентации;
  • объявление верхнего колонтитула;
  • объявление нижнего колонтитула;
  • объявление даты и времени;
  • идентификатор.

Элементы, которые могут быть включены в элемент <draw:page>:

  • формы;
  • векторные фигуры;
  • анимация;
  • заметки презентации.
Имя страницы[править]

Атрибут draw:name определяет имя графической страницы. Это необязательный атрибут; если он используется, имя должно быть уникальным. Если он не используется, приложение может генерировать уникальное имя.

<define name="draw-page-attlist" combine="interleave">
    <optional>
        <attribute name="draw:name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Стиль страницы[править]

Атрибут draw:style-name назначает графической странице дополнительные атрибуты форматирования путем указания стиля графической страницы. Это необязательный атрибут. Заданное семейство стилей для станицы — drawing-page.

Для страниц внутри документа презентации также могут быть использованы атрибуты страницы презентации (см. раздел 15.36).

<define name="draw-page-attlist" combine="interleave">
    <optional>
        <attribute name="draw:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
Мастер-страница[править]

Каждая графическая страница должна иметь одну мастер-страницу, связанную с ней. Мастер-страница:

  • определяет свойства, такие как размеры и обрамление графической страницы;
  • служит контейнером для векторных фигур, которые используются как общий фон.

Атрибут draw:master-page-name определяет имя мастер-страницы, связанной с графической страницей. Это обязательный атрибут.

<define name="draw-page-attlist" combine="interleave">
    <attribute name="draw:master-page-name">
        <ref name="styleNameRef"/>
    </attribute>
</define>
Разметка страницы презентации[править]

Если графическая страница была создана с использованием разметки страницы презентации, атрибут presentation:presentation-page-layout-name ссылается на соответствующий элемент <style:presentation-page-layout> (см. раздел 14.15 для получения информации об элементе разметки страницы презентации). Это необязательный атрибут.

<define name="draw-page-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:presentation-page-layout-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
Объявление верхнего колонтитула[править]

Атрибут presentation:use-header-name определяет имя объявления поля верхнего колонтитула (см. раздел 9.11.2), которое используется для всех полей верхнего колонтитула (см. раздел 9.10.1), отображаемых на странице.

<define name="common-presentation-header-footer-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:use-header-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Объявление нижнего колонтитула[править]

Атрибут presentation:use-footer-name определяет имя объявления поля нижнего колонтитула (см. раздел 9.11.3), которое используется для всех полей нижнего колонтитула (см. раздел 9.10.2), отображаемых на странице.

<define name="common-presentation-header-footer-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:use-footer-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Объявление даты и времени[править]

Атрибут presentation:use-date-time-name определяет имя объявления поля даты и времени (см. раздел 9.11.4), которое используется для всех полей даты и времени (см. раздел 9.10.3), отображаемых на странице.

<define name="common-presentation-header-footer-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:use-date-time-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Идентификатор[править]

Атрибут draw:id присваивает уникальный идентификатор графической странице.

<define name="draw-page-attlist">
    <optional>
        <attribute name="draw:id">
            <ref name="ID"/>
        </attribute>
    </optional>
</define>

9.1.5 Заметки презентации[править]

Каждый элемент графической страницы в презентации может иметь дополнительные заметки презентации, которые содержат краткое описание соответствующей графической страницы и дополнительных графических фигур. Страница заметок описывается элементом <presentation:notes>, который может содержаться в элементе <draw:page> (см. раздел 14.4.2 для получения дополнительной информации об этом элементе).

Пример — Графическая страница:

<office:automatic-styles>
    <style:style style:name="gg3434" style:family="drawing-page">
        <style:drawing-page-properties presentation:page-duration="5s">
    </style:style>
    <style:style style:name="titledia"
                style:family="presentation-page-layout">
        <presentation:placeholder presentation:object="title"
                    svg:x="20%" svg:y="10%"
                    svg:width="80%" svg:height="10%"/>
        <presentation:placeholder presentation:object="subtitle"
                    svg:x="20%" svg:y="30%"
                    svg:width="80%" svg:height="60%" />
    </style:style>
</office:automatic-styles>
...
<office:body>
    <draw:page office:name="Page 1" draw:style-name="gg3434"
            draw:master-page-name="home"
            presentation:page-layout-name="titledia">
    <draw:rect .../>
        <presentation:notes>
            <draw:text ...>this is a note</draw:text>
        </presentation:notes>
    </draw:page>
</office:body>

9.2 Векторные фигуры[править]

Этот раздел описывает векторные фигуры, которые могут встретиться внутри любых приложений.

<define name="shape">
    <choice>
        <ref name="draw-rect"/>
        <ref name="draw-line"/>
        <ref name="draw-polyline"/>
        <ref name="draw-polygon"/>
        <ref name="draw-regular-polygon"/>
        <ref name="draw-path"/>
        <ref name="draw-circle"/>
        <ref name="draw-ellipse"/>
        <ref name="draw-g"/>
        <ref name="draw-page-thumbnail"/>
        <ref name="draw-frame"/>
        <ref name="draw-measure"/>
        <ref name="draw-caption"/>
        <ref name="draw-connector"/>
        <ref name="draw-control"/>
        <ref name="dr3d-scene"/>
        <ref name="draw-custom-shape"/>
    </choice>
</define>

9.2.1 Прямоугольник[править]

Элемент <draw:rect> представляет прямоугольную векторную фигуру.

<define name="draw-rect">
    <element name="draw:rect">
        <ref name="draw-rect-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>

С элементом <draw:rect> могут быть связаны следующие атрибуты:

  • положение, размер, стиль, слой, Z-индекс, идентификатор, преобразование (см. раздел 9.2.15);
  • привязка, фон таблицы, конечное положение рисунка (см. раздел 9.2.16);
  • скругленные вершины.
Скругленные вершины[править]

Атрибут draw:corner-radius определяет радиус окружности, используемой для скругления вершин прямоугольника.

<define name="draw-rect-attlist" combine="interleave">
    <optional>
        <attribute name="draw:corner-radius">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
</define>

Пример — Прямоугольная векторная фигура:

<draw:rect svg:x="2cm" svg:y="3cm" svg:width="10cm" svg:height="20cm"
svg:transform="rotate(45)" draw:style-name="object-with-shadow">

9.2.2 Линия[править]

Элемент <draw:line> представляет линию.

<define name="draw-line">
    <element name="draw:line">
        <ref name="draw-line-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>

С элементом <draw:line> могут быть связаны следующие атрибуты:

  • стиль, слой, Z-индекс, идентификатор, преобразование (см. раздел 9.2.15);
  • привязка, фон таблицы, конечное положение рисунка (см. раздел 9.2.16);
  • начальная точка;
  • конечная точка.
Начальная точка[править]

Атрибуты начальной точки svg:x1 и svg:y1 определяют начальные координаты линии.

<define name="draw-line-attlist" combine="interleave">
    <attribute name="svg:x1">
        <ref name="coordinate"/>
    </attribute>
    <attribute name="svg:y1">
        <ref name="coordinate"/>
    </attribute>
</define>
Конечная точка[править]

Атрибуты конечной точки svg:x2 и svg:y2 определяют конечные координаты линии.

<define name="draw-line-attlist" combine="interleave">
    <attribute name="svg:x2">
        <ref name="coordinate"/>
    </attribute>
    <attribute name="svg:y2">
        <ref name="coordinate"/>
    </attribute>
</define>

9.2.3 Ломаная[править]

Элемент <draw:polyline> представляет векторную фигуру ломаную.

Некоторые реализации могут игнорировать атрибут размера, а вместо него определять размер векторной фигуры исключительно из данных векторной фигуры (т. е. вершин многоугольника).

<define name="draw-polyline">
    <element name="draw:polyline">
        <ref name="common-draw-points-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-viewbox-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>

С элементом <draw:polyline> могут быть связаны следующие атрибуты:

  • положение, размер, область отображения, стиль, слой, Z-индекс, идентификатор, преобразование (см. раздел 9.2.15);
  • привязка, фон таблицы, конечное положение рисунка (см. раздел 9.2.16);
  • точки.
Точки[править]

Атрибут svg:points хранит последовательность точек, которые соединены прямыми линиями. Каждая точка имеет две координаты. Координаты разделяются запятыми, а точки разделяются пробельными символами.

<define name="common-draw-points-attlist">
    <attribute name="draw:points">
        <ref name="points"/>
    </attribute>
</define>

9.2.4 Многоугольник[править]

Элемент <draw:polygon> представляет многоугольник (полигон). Многоугольник — это замкнутое множество соединенных прямых линий.

Некоторые реализации могут игнорировать атрибут размера, а вместо него определять размер векторной фигуры исключительно из данных векторной фигуры (т. е. вершин многоугольника).

<define name="draw-polygon">
    <element name="draw:polygon">
        <ref name="common-draw-points-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-viewbox-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>

С элементом <draw:polygon> могут быть связаны следующие атрибуты:

  • положение, размер, область отображения, стиль, слой, Z-индекс, идентификатор, преобразование (см. раздел 9.2.15);
  • привязка, фон таблицы, конечное положение рисунка (см. раздел 9.2.16);
  • точки (см. раздел 9.2.3).

9.2.5 Правильный многоугольник[править]

Элемент <draw:regular-polygon> представляет правильный многоугольник. Правильный многоугольник — это многоугольник, который определяется числом его граней (которое равно числу его вершин) вместо отдельных точек.

<define name="draw-regular-polygon">
    <element name="draw:regular-polygon">
        <ref name="draw-regular-polygon-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>

С элементом <draw:polygon> могут быть связаны следующие атрибуты:

  • положение, размер, стиль, слой, Z-индекс, идентификатор, преобразование (см. раздел 9.2.15);
  • привязка, фон таблицы, конечное положение рисунка (см. раздел 9.2.16);
  • выпуклость;
  • вершины;
  • заостренность.
Выпуклость[править]

Атрибут draw:concave определяет, является ли многоугольник выпуклым или невыпуклым. В выпуклом многоугольнике вершины расположены на единственном эллипсе, центр которого совпадает с центром многоугольника. В невыпуклом многоугольнике требуются два таких эллипса, и последовательные вершины расположены на разных эллипсах. Примером выпуклого многоугольника является шестиугольник. Примером невыпуклого многоугольника является звезда. Для невыпуклых многоугольников дополнительный атрибут draw:sharpness является обязательным.

<define name="draw-regular-polygon-attlist" combine="interleave">
    <choice>
        <attribute name="draw:concave">
            <value>false</value>
        </attribute>
        <group>
            <attribute name="draw:concave">
                <value>true</value>
            </attribute>
            <ref name="draw-regular-polygon-sharpness-attlist"/>
        </group>
    </choice>
</define>
Вершины[править]

Атрибут draw:corners определяет число вершин многоугольника.

<define name="draw-regular-polygon-attlist" combine="interleave">
    <attribute name="draw:corners">
        <ref name="positiveInteger"/>
    </attribute>
</define>
Заостренность[править]

Для атрибутов невыпуклых многоугольников атрибут draw:sharpness определяет радиус эллипса, на котором расположены внутренние вершины многоугольника. Значение атрибута задается в процентах: 0 % означает, что все вершины расположены на одном эллипсе, а 100 % означает, что внутренние вершины расположены в центральной точке многоугольника. В общем, если r — радиус многоугольника и s — заостренность, внутренние вершины расположены на эллипсе, радиус которого составляет r(100-s)/100.

<define name="draw-regular-polygon-sharpness-attlist">
    <attribute name="draw:sharpness">
        <ref name="percent"/>
    </attribute>
</define>

9.2.6 Траектория[править]

Элемент <draw:path> представляет траекторию. Траектория — это векторная фигура с определенным пользователем контуром. Векторная фигура строится путем использования множества действий, таких как:

  • moveto — установить новую текущую точку;
  • lineto — нарисовать соединительную линию;
  • curveto — нарисовать кубическую кривую Безье;
  • arc — нарисовать эллиптическую или круговую дугу;
  • closepath — замкнуть текущую векторную фигуру, нарисовав линию к последнему moveto.

Составные траектории — это траектории с вложенными траекториями, каждая вложенная траектория состоит из одного moveto с последующей одной или несколькими операциями рисования линии или кривой. Составные траектории могут быть использованы для таких эффектов как отверстия внутри объектов.

Некоторые реализации могут игнорировать атрибут размера, а вместо него определять размер векторной фигуры исключительно из данных векторной фигуры (т. е. вершин многоугольника).

<define name="draw-path">
    <element name="draw:path">
        <ref name="common-draw-path-data-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-viewbox-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>

С элементом <draw:path> могут быть связаны следующие атрибуты:

  • положение, размер, область отображения, стиль, слой, Z-индекс, идентификатор, преобразование (см. раздел 9.2.15);
  • привязка, фон таблицы, конечное положение рисунка (см. раздел 9.2.16);
  • данные траектории.
Данные траектории[править]

Синтаксис атрибута svg:d описан в § 8 Scalable Vector Graphics (SVG) 1.1 Specification [SVG].

Некоторые реализации могут поддерживать только подмножество спецификаций траекторий SVG, например не поддерживать сочетание открытых и закрытых кривых для одной векторной фигуры или не поддерживать команду эллиптической дуги.

<define name="common-draw-path-data-attlist">
    <attribute name="svg:d">
        <ref name="pathData"/>
    </attribute>
</define>

9.2.7 Окружность[править]

Элемент <draw:circle> представляет круглую векторную фигуру.

<define name="draw-circle">
    <element name="draw:circle">
        <ref name="draw-circle-attlist"/>
        <ref name="common-draw-circle-ellipse-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>

С элементом <draw:circle> могут быть связаны следующие атрибуты:

  • положение, размер, стиль, слой, Z-индекс, идентификатор, преобразование (см. раздел 9.2.15);
  • привязка, фон таблицы, конечное положение рисунка (см. раздел 9.2.16);
  • центр;
  • радиус;
  • тип;
  • начальный угол;
  • конечный угол.
Центр[править]

Атрибуты центра svg:cx и svg:cy определяют координаты центра окружности. Если эти необязательные атрибуты не установлены, для создания окружности используются атрибуты положения и размера.

<define name="common-draw-circle-ellipse-attlist" combine="interleave">
    <optional>
        <attribute name="svg:cx">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:cy">
            <ref name="coordinate"/>
        </attribute>
    </optional>
</define>
Радиус[править]

Атрибут svg:r определяет радиус окружности. Если этот необязательный атрибут не используется, для создания окружности используются атрибуты положения и размера.

<define name="draw-circle-attlist" combine="interleave">
    <optional>
        <attribute name="svg:r">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
Тип[править]

Атрибут draw:kind определяет внешний вид окружности.

  • full — определяет полную окружность или эллипс, например ;
  • section — определяет сектор круга или эллипса, например ;
  • cut — определяет окружность или эллипс с обрезкой, например ;
  • arc — определяет дугу окружности или эллипса, например .
<define name="common-draw-circle-ellipse-attlist" combine="interleave">
    <optional>
        <attribute name="draw:kind" a:defaultValue="full">
            <choice>
                <value>full</value>
                <value>section</value>
                <value>cut</value>
                <value>arc</value>
            </choice>
        </attribute>
    </optional>
</define>
Начальный угол[править]

Для окружностей, у которых атрибут draw:kind установлен как section, cut или arc, атрибут svg:start-angle определяет начальный угол сегмента круга, обрезанного круга или дуги окружности.

<define name="common-draw-circle-ellipse-attlist" combine="interleave">
    <optional>
        <attribute name="draw:start-angle">
            <ref name="double"/>
        </attribute>
    </optional>
</define>
Конечный угол[править]

Для окружностей, у которых атрибут draw:kind установлен как section, cut или arc, атрибут svg:end-angle определяет конечный угол сегмента круга, обрезанного круга или дуги окружности.

<define name="common-draw-circle-ellipse-attlist" combine="interleave">
    <optional>
        <attribute name="draw:end-angle">
            <ref name="double"/>
        </attribute>
    </optional>
</define>

9.2.8 Эллипс[править]

Элемент <draw:ellipse> представляет эллипс.

<define name="draw-ellipse">
    <element name="draw:ellipse">
        <ref name="common-draw-circle-ellipse-attlist"/>
        <ref name="draw-ellipse-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>

С элементом <draw:ellipse> могут быть связаны следующие атрибуты:

  • положение, размер, стиль, слой, Z-индекс, идентификатор, преобразование (см. раздел 9.2.15);
  • привязка, фон таблицы, конечное положение рисунка (см. раздел 9.2.16);
  • центр, тип, начальный угол, конечный угол (см. раздел 9.2.7);
  • радиус.
Радиус[править]

Атрибуты svg:rx и svg:rx определяют горизонтальный и вертикальный радиус эллипса. Если эти необязательные атрибуты не установлены, для создания эллипса используются атрибуты положения и размера.

<define name="draw-ellipse-attlist" combine="interleave">
    <optional>
        <attribute name="svg:rx">
            <ref name="length"/>
        </attribute>
        <attribute name="svg:ry">
            <ref name="length"/>
        </attribute>
    </optional>
</define>

9.2.9 Соединительный элемент[править]

Элемент <draw:connector> представляет множество линий, которые соединены с точками привязки двух других векторных фигур.

<define name="draw-connector">
    <element name="draw:connector">
        <ref name="draw-connector-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>

С элементом <draw:connector> могут быть связаны следующие атрибуты:

  • стиль, слой, Z-индекс, идентификатор (см. раздел 9.2.15);
  • привязка, фон таблицы, конечное положение рисунка (см. раздел 9.2.16);
  • тип;
  • начальное положение;
  • начальная векторная фигура;
  • начальная точка привязки;
  • конечное положение;
  • конечная векторная фигура;
  • конечная точка привязки;
  • наклон линии.
Тип[править]

Атрибут draw:type определяет, каким образом формируется изображение соединения между двумя точками. Значениями данного атрибута могут быть standard, lines, line, или curve:

  • standard — стандартный соединительный элемент, выходящий из двух соединенных объектов с прямыми линиями и соединяющий их прямой перпендикулярной линией;
  • lines — многолинейный соединительный элемент, выходящий из двух соединенных объектов с прямыми линиями и соединяющей их прямой линией (не обязательно перпендикулярной);
  • line — линейный соединительный элемент, нарисованный одной прямой линией между двумя точками перехода соединенных объектов;
  • curve — дуговой соединительный элемент, нарисованный одиночной дугой между двумя точками перехода соединенных объектов.
<define name="draw-connector-attlist" combine="interleave">
    <optional>
        <attribute name="draw:type" a:defaultValue="standard">
            <choice>
                <value>standard</value>
                <value>lines</value>
                <value>line</value>
                <value>curve</value>
            </choice>
        </attribute>
    </optional>
</define>
Начальное положение[править]

Атрибуты начального положения svg:x1 и svg:y1 определяют начальное положение соединительного элемента.

Если начальная позиция соединена с векторной фигурой, эти атрибуты необязательны, поскольку начальная позиция по умолчанию относится к соответствующей точке привязки на целевой векторной фигуре.

<define name="draw-connector-attlist" combine="interleave">
    <optional>
        <attribute name="svg:x1">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:y1">
            <ref name="coordinate"/>
        </attribute>
    </optional>
</define>
Начальная векторная фигура[править]

Атрибут draw:start-shape определяет векторную фигуру, на которую по имени ссылается начало соединительного элемента.

Если векторная фигура соединена с началом соединительного элемента, начальная позиция определяется по умолчанию как точка привязки на выбранной векторной фигуре.

<define name="draw-connector-attlist" combine="interleave">
    <optional>
        <attribute name="draw:start-shape">
            <ref name="IDREF"/>
        </attribute>
    </optional>
</define>
Начальная точка привязки[править]

Атрибут draw:start-glue-point идентифицирует точку привязки в начальной векторной фигуре соединительного элемента по ее номеру (см. раздел 9.2.19 для получения дополнительной информации о точках привязки).

Если этот атрибут не установлен и начало соединительного элемента связано с векторной фигурой, приложение само может выбрать точку привязки. Если начало соединительного элемента не связано с векторной фигурой, то этот атрибут игнорируется.

<define name="draw-connector-attlist" combine="interleave">
    <optional>
        <attribute name="draw:start-glue-point">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
Конечное положение[править]

Атрибуты конечного положения svg:x2 и svg:y2 определяют конечное положение соединительного элемента.

Если конечное положение связано с векторной фигурой, эти атрибуты необязательны, поскольку конечное положение по умолчанию устанавливается как соответствующая точка привязки выбранной векторной фигуры.

<define name="draw-connector-attlist" combine="interleave">
    <optional>
        <attribute name="svg:x2">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:y2">
            <ref name="coordinate"/>
        </attribute>
    </optional>
</define>
Конечная векторная фигура[править]

Атрибут draw:end-shape идентифицирует по имени векторную фигуру, с которой связан конец соединительного элемента.

Если векторная фигура связана с концом соединительного элемента, конечное положение устанавливается по умолчанию как соответствующая точка привязки на выбранной векторной фигуре.

<define name="draw-connector-attlist" combine="interleave">
    <optional>
        <attribute name="draw:end-shape">
            <ref name="IDREF"/>
        </attribute>
    </optional>
</define>
Конечная точка привязки[править]

Атрибут draw:end-glue-point идентифицирует точку привязки в конечной векторной фигуре соединительного элемента по ее номеру (см. раздел 9.2.19 для получения дополнительной информации о точках привязки).

Если этот атрибут не установлен и конец соединительного элемента связан с векторной фигурой, приложение может само выбрать точку привязки. Если конец соединительного элемента не привязан к векторной фигуре, этот атрибут игнорируется.

<define name="draw-connector-attlist" combine="interleave">
    <optional>
        <attribute name="draw:end-glue-point">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
Наклон линии[править]

Атрибут draw:line-skew контролирует формирование линий, которые соединяют начало и конец соединительного элемента. В зависимости от типа соединительного элемента, он может изменяться от одного до трех дистанций, сдвигая соединительный элемент относительно его нормального положения.

<define name="draw-connector-attlist" combine="interleave">
    <optional>
        <attribute name="draw:line-skew">
            <list>
                <ref name="length"/>
                <optional>
                    <ref name="length"/>
                    <optional>
                        <ref name="length"/>
                    </optional>
                </optional>
            </list>
        </attribute>
    </optional>
</define>

9.2.10 Подпись[править]

Элемент <draw:caption> представляет прямоугольную векторную фигуру с дополнительным набором линий. Он может быть использован как описание для точки внутри рисунка.

<define name="draw-caption">
    <element name="draw:caption">
        <ref name="draw-caption-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>

С элементом <draw:caption> могут быть связаны следующие атрибуты:

  • положение, размер, стиль, слой, Z-индекс, идентификатор, преобразование (см. раздел 9.2.15);
  • привязка, фон таблицы, конечное положение рисунка (см. раздел 9.2.16);
  • точка подписи;
  • скругленные вершины.
Точка подписи[править]

Атрибуты точки подписи draw:caption-point-x и draw:caption-point-y определяют положение названной точки. Множество линий отображаются из области заголовка.

<define name="draw-caption-attlist" combine="interleave">
    <optional>
        <attribute name="draw:caption-point-x">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="draw:caption-point-y">
            <ref name="coordinate"/>
        </attribute>
    </optional>
</define>
Скругленные вершины[править]

Атрибут draw:corner-radius определяет радиус окружности, которая используется для скругления вершин подписи.

<define name="draw-caption-attlist" combine="interleave">
    <optional>
        <attribute name="draw:corner-radius">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
</define>

9.2.11 Измерение[править]

Элемент <draw:measure> представляет векторную фигуру, которая используется для измерения расстояний на изображениях.

<define name="draw-measure">
    <element name="draw:measure">
        <ref name="draw-measure-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>

С элементом <draw:measure> могут быть связаны следующие атрибуты:

  • стиль, слой, Z-индекс, идентификатор, преобразование (см. раздел 9.2.15);
  • привязка, фон таблицы, конечное положение рисунка (см. раздел 9.2.16);
  • начальное положение;
  • конечное положение.
Начальное положение[править]

Атрибуты svg:x1 и svg:y1 определяют начальную точку измеряемой дистанции.

<define name="draw-measure-attlist" combine="interleave">
    <attribute name="svg:x1">
        <ref name="coordinate"/>
    </attribute>
    <attribute name="svg:y1">
        <ref name="coordinate"/>
    </attribute>
</define>
Конечное положение[править]

Атрибуты svg:x2 и svg:y2 определяют конечную точку измеряемой дистанции.

<define name="draw-measure-attlist" combine="interleave">
    <attribute name="svg:x2">
        <ref name="coordinate"/>
    </attribute>
    <attribute name="svg:y2">
        <ref name="coordinate"/>
    </attribute>
</define>

9.2.12 Элемент управления[править]

Элемент <draw:control> представляет векторную фигуру, которая связана с элементом управления внутри элемента <office:forms> (см. раздел 11.1).

<define name="draw-control">
    <element name="draw:control">
        <ref name="draw-control-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
    </element>
</define>

С элементом <draw:control> могут быть связаны следующие атрибуты:

  • положение, размер, стиль, слой, Z-индекс, идентификатор, преобразование (см. раздел 9.2.15);
  • привязка, фон таблицы, конечное положение рисунка (см. раздел 9.2.16);
  • элемент управления.
Элемент управления[править]

Атрибут draw:control определяет элемент управления внутри формы (см. раздел 11.5.2), который привязан к векторной фигуре элемента управления.

<define name="draw-control-attlist" combine="interleave">
    <attribute name="draw:control">
        <ref name="IDREF"/>
    </attribute>
</define>

9.2.13 Уменьшенное изображение страницы[править]

Элемент <draw:page-thumbnail> представляет прямоугольную область, отображающую уменьшенное изображение страницы страницы рисования.

<define name="draw-page-thumbnail">
    <element name="draw:page-thumbnail">
        <ref name="draw-page-thumbnail-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="presentation-shape-attlist"/>
        <ref name="common-draw-shape-with-styles-attlist"/>
        <empty/>
    </element>
</define>

С элементом <draw:page-thumbnail> могут быть связаны следующие атрибуты:

  • положение, размер, стиль, слой, Z-индекс, идентификатор, преобразование (см. раздел 9.2.15);
  • привязка, фон таблицы, конечное положение рисунка (см. раздел 9.2.16);
  • класс презентации (см. раздел 9.6.1);
  • номер страницы.
Номер страницы[править]

Атрибут draw:page-number определяет номер страницы, которая будет отображаться в уменьшенном изображении страницы. Для уменьшенных изображений страниц примечаний значение данного атрибута прикреплено к графической странице страницы заметок. Для уменьшенных изображений страниц мастер-страниц тезисов значением данного атрибута является очередность, в которой страницы просматриваются на странице тезисов. Например, на странице тезисов с 4 уменьшенными изображениями страницы, уменьшенное изображение с наименьшим номером страницы отображает первую страницу, когда печатается первая страница тезисов, и пятую, когда печатается вторая страница тезисов, и так далее.

<define name="draw-page-thumbnail-attlist">
    <optional>
        <attribute name="draw:page-number">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>

9.2.14 Группировка[править]

Элемент <draw:g> представляет группу векторных фигур.

<define name="draw-g">
    <element name="draw:g">
        <ref name="draw-g-attlist"/>
        <ref name="common-draw-z-index-attlist"/>
        <ref name="common-draw-name-attlist"/>
        <ref name="common-draw-id-attlist"/>
        <ref name="common-draw-style-name-attlist"/>
        <ref name="common-text-spreadsheet-shape-attlist"/>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="shape"/>
        </zeroOrMore>
    </element>
</define>

С элементом <draw:g> могут быть связаны следующие атрибуты:

  • стиль, Z-индекс и идентификатор (см. раздел 9.2.15);
  • привязка, фон таблицы, конечное положение рисунка (см. раздел 9.2.16);
  • положение.
Положение[править]

Для сгрупп ированной векторной фигуры, которая содержится в текстовом документе и привязывается как символ, атрибут svg:y определяет вертикальное положение векторной фигуры.

<define name="draw-g-attlist" combine="interleave">
    <optional>
        <attribute name="svg:y">
            <ref name="coordinate"/>
        </attribute>
    </optional>
</define>

9.2.15 Общие атрибуты векторных фигур[править]

Атрибуты, описанные в данном разделе, являются общими для всех векторных фигур.

Имя[править]

Атрибут draw:name назначает имя векторной фигуре.

<define name="common-draw-name-attlist" combine="interleave">
    <optional>
        <attribute name="draw:name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Положение[править]

Атрибуты положения svg:x и svg:y определяют координаты x и y начального положения векторной фигуры.

<define name="common-draw-position-attlist">
    <optional>
        <attribute name="svg:x">
            <ref name="coordinate"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:y">
            <ref name="coordinate"/>
        </attribute>
    </optional>
</define>
Размер[править]

Атрибуты svg:width и svg:height определяют ширину и высоту векторной фигуры.

<define name="common-draw-size-attlist">
    <optional>
        <attribute name="svg:width">
            <ref name="length"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:height">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
Преобразование[править]

Атрибут draw:transform определяет список преобразований, которые могут быть применены к векторной фигуре.

Значением атрибута является список определений преобразования, которые применяются к векторной фигуре в порядке их перечисления в списке. Определения преобразований в списке должны быть разделены пробельными символами и/или запятыми. Типы допустимых определений преобразований включают:

  • matrix(<a> <b> <c> <d> <e> <f>) — определяет преобразование в виде матричного преобразования шести значений, matrix(a,b,c,d,e,f) эквивалентно применению матрицы преобразования [a b c d e f];
  • translate(<tx> [<ty>]) — определяет перемещение на tx и ty;
  • scale(<sx> [<sy>]) — определяет операцию масштабирования на sx и sy, если <sy> не представлен, он принимается равным <sx>;
  • rotate(<rotate-angle>) — определяет вращение на <rotate-angle> относительно начала системы координат векторных фигур;
  • skewX(<skew-angle>) — определяет наклонное преобразование вдоль оси X;
  • skewY(<skew-angle>) — определяет наклонное преобразование вдоль оси Y.
<define name="common-draw-transform-attlist">
    <optional>
        <attribute name="draw:transform">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Область отображения[править]

Атрибут svg:viewBox устанавливает пользовательскую систему координат внутри физической системы координат векторной фигуры, определенной атрибутами положения и размера. Пользовательская система координат используется атрибутом svg:points и элементом <draw:path>.

Синтаксис использования этого атрибута такой же, как и синтаксис в [SVG]. Значением атрибута являются четыре числа, разделенных пробельными символами, которые определяют левое, верхнее, правое и нижнее измерения пользовательской системы координат.

Некоторые реализации могут игнорировать атрибут области отображения. Предполагаемая система координат в таком случае имеет начало в левой верхней вершине векторной фигуры без какого-либо масштабирования относительно векторной фигуры.

<define name="common-draw-viewbox-attlist">
    <attribute name="svg:viewBox">
        <list>
            <ref name="integer"/>
            <ref name="integer"/>
            <ref name="integer"/>
            <ref name="integer"/>
        </list>
    </attribute>
</define>
Стиль[править]

Атрибуты draw:style-name и presentation:style-name определяют стиль для векторной фигуры. Если используется атрибут draw:style-name, векторная фигура является обычной векторной фигурой. Если используется атрибут presentation:style-name, векторная фигура является векторной фигурой презентации, как описано в разделе 9.6.

Значением обоих атрибутов является имя элемента <style:style>. Если используется атрибут draw:style-name, стиль должен принимать значение из группы graphic. Если используется атрибут presentation:style-name, стиль должен принимать значение из группы presentation. Свойства форматирования определенного стиля и его необязательного родительского стиля используются для форматирования векторной фигуры (см. также раздел 14.13.1).

Атрибуты draw:class-names и presentation:class-names принимают список разделенных пробельными символами либо имен графических стилей, либо имен стилей презентации. Указанные стили применяются в том порядке, в каком они содержатся в списке. Если представлены атрибуты draw:style-name и draw:class-names, или атрибуты presentation:style-name и presentation:class-names, то стиль, указанный атрибутом style-name, трактуется как первый стиль в списке стилей атрибута class-names. Соответствующее приложение должно поддерживать атрибут class-names, а также сохранять его во время редактирования.

<define name="common-draw-style-name-attlist">
    <choice>
        <group>
            <optional>
                <attribute name="draw:style-name">
                    <ref name="styleNameRef"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="draw:class-names">
                    <ref name="styleNameRefs"/>
                </attribute>
            </optional>
        </group>
        <group>
            <optional>
                <attribute name="presentation:style-name">
                    <ref name="styleNameRef"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="presentation:class-names">
                    <ref name="styleNameRefs"/>
                </attribute>
            </optional>
        </group>
    </choice>
</define>
Стиль текста[править]

Атрибут draw:text-style-name определяет стиль векторной фигуры, используемый для форматирования текста, который может быть добавлен к этой векторной фигуре.

Значением этого атрибута является имя элемента <style:style> со значением из группы paragraph.

<define name="common-draw-text-style-name-attlist">
    <optional>
        <attribute name="draw:text-style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
Слой[править]

Атрибут draw:layer может привязать каждую векторную фигуру к слою. Значением данного атрибута должно быть имя слоя из множества доступных слоев внутри документа.

<define name="common-draw-layer-name-attlist">
    <optional>
        <attribute name="draw:layer">
            <data type="string"/>
        </attribute>
    </optional>
</define>
Идентификатор[править]

Атрибут draw:id присваивает уникальный идентификатор к векторной фигуре, который может быть использован для ссылки на эту векторную фигуру.

<define name="common-draw-id-attlist">
    <optional>
        <attribute name="draw:id">
            <ref name="ID"/>
        </attribute>
    </optional>
</define>
Z-индекс[править]

Векторные фигуры отображаются в определенном порядке. Вообще, векторные фигуры отображаются в том порядке, в каком они появляются в XML-документе. Чтобы изменить этот порядок, используется атрибут svg:z-index.

Это необязательный атрибут.

<define name="common-draw-z-index-attlist">
    <optional>
        <attribute name="draw:z-index">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>

9.2.16 Общие атрибуты векторных фигур для текстовых документов и документов электронных таблиц[править]

Атрибуты, описанные в этом разделе, являются общими для всех векторных фигур, содержащихся в текстовом документе или документе электронных таблиц.

Конечное положение[править]

Если векторная фигура включена в документ электронных таблиц и привязка векторной фигуры осуществлена к ячейке, то атрибуты table:end-cell-address, table:end-x и table:end-y определяют конечное положение векторной фигуры, и атрибуты размера игнорируются. Конечное положение определяется с использованием адреса ячейки, в которой находится конечное положение, и координат x и y конечного положения относительно верхней и левой граней ячейки.

<define name="common-text-spreadsheet-shape-attlist" combine="interleave">
    <optional>
        <attribute name="table:end-cell-address">
            <ref name="cellAddress"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="table:end-x">
            <ref name="coordinate"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="table:end-y">
            <ref name="coordinate"/>
        </attribute>
    </optional>
</define>
Фон таблицы[править]

Если векторная фигура включена в документ электронной таблицы, то атрибут table:table-background определяет, будет ли содержаться векторная фигура в фоне таблицы. Если атрибут отсутствует, то векторная фигура помещается на передний план таблицы.

<define name="common-text-spreadsheet-shape-attlist" combine="interleave">
    <optional>
        <attribute name="table:table-background">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Привязка[править]

Внутри текстового документа атрибут типа привязки text:anchor-type определяет, каким образом фрейм обрамляет текстовый документ. Положение привязки — точка, в которой фрейм обрамляет текстовый документ. Положение привязки зависит от типа привязки, как это описано в следующей таблице:

Значение
атрибута
text:anchor-
type ...
Положение привязки... Элемент векторной
фигуры отобразится ...
Примечания
page Если к элементу векторной фигуры присоединен атрибут text:anchor-page-number, положение привязки — страница, которая имеет такой же физический номер, что и значение атрибута. В начале основного содержимого документа, снаружи любого абзаца или фрейма, указанного атрибутом text:anchor-page-number. Физический номер страницы — это номер, присвоенный странице, если все страницы в документе пронумерованы, начиная с номера 1
Если атрибут text:anchor-page-number отсутствует, положение привязки — это страница, на которой появляется символ, стоящий следом за элементом графического объекта Внутри любого элемента абзаца, который не содержится внутри верхнего колонтитула, нижнего колонтитула, сноски или текстового окна, если не указан атрибут text:anchor-page-number
frame Родительский текстовый блок, в котором содержится текущий элемент векторной фигуры В элементе, представляющем текстовый блок, которым обрамлен графический объект. Например, если изображение обрамлено текстовым блоком, элемент изображения расположен в элементе текстового блока
paragraph Абзац, в котором содержится текущий элемент векторной фигуры В начале элемента абзаца
char Символ после элемента векторной фигуры Прямо перед символом
as-char В данном случае положение привязки отсутствует. Векторная фигура ведет себя как символ На позиции, где в документе отображается
<define name="common-text-spreadsheet-shape-attlist" combine="interleave">
    <ref name="common-text-anchor-attlist"/>
</define>

<define name="common-text-anchor-attlist" combine="interleave">
    <optional>
        <attribute name="text:anchor-type">
            <choice>
                <value>page</value>
                <value>frame</value>
                <value>paragraph</value>
                <value>char</value>
                <value>as-char</value>
            </choice>
        </attribute>
    </optional>
</define>
Номер страницы привязки[править]

Внутри текстовых документов, атрибут text:anchor-page-number определяет физический номер страницы привязки, если графический объект обрамляет страницу.

<define name="common-text-anchor-attlist" combine="interleave">
    <optional>
        <attribute name="text:anchor-page-number">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>

9.2.17 Общее содержимое векторных фигур[править]

Большинство векторных фигур может иметь текстовое содержимое. Текстовое содержимое может включать абзацы (см. раздел 4.1.2), а также списки (см. раздел 4.3).

<define name="draw-text">
    <zeroOrMore>
        <choice>
            <ref name="text-p"/>
            <ref name="text-list"/>
        </choice>
    </zeroOrMore>
</define>

9.2.18 Общие группы атрибутов векторных фигур[править]

Последующие определенные атрибуты — общие для всех векторных фигур, поддерживающих стили и не поддерживающих текст.

<define name="common-draw-shape-with-styles-attlist">
    <ref name="common-draw-z-index-attlist"/>
    <ref name="common-draw-id-attlist"/>
    <ref name="common-draw-layer-name-attlist"/>
    <ref name="common-draw-style-name-attlist"/>
    <ref name="common-draw-transform-attlist"/>
    <ref name="common-draw-name-attlist"/>
    <ref name="common-text-spreadsheet-shape-attlist"/>
</define>

Последующие определенные атрибуты — общие для всех векторных фигур, поддерживающих стили и текст.

<define name="common-draw-shape-with-text-and-styles-attlist">
    <ref name="common-draw-shape-with-styles-attlist"/>
    <ref name="common-draw-text-style-name-attlist"/>
</define>

9.2.19 Точки привязки[править]

Точки привязки — это специально назначенные точки на графическом объекте, с которыми может соединяться векторная фигура соединительного элемента. Большинство графических объектов имеют четыре стандартных точки привязки, расположенных на четырех ребрах объекта. Дополнительные точки привязки могут быть добавлены к графическому объекту путем вставки одного или более элементов <draw:glue-point> в элемент графического объекта. Элемент <draw:glue-point> создает одиночную определяемую пользователем точку привязки, если он помещается внутри элемента графического объекта, например, внутри элемента <draw:rectangle>.

<define name="draw-glue-point">
    <element name="draw:glue-point">
        <ref name="draw-glue-point-attlist"/>
        <empty/>
    </element>
</define>
Идентификатор[править]

Атрибут draw:id содержит идентификатор точки привязки. Идентификатор — это номер, который используется внутри атрибутов draw:start-glue-point и draw:end-glue-point элемента <draw:connector>. Идентификаторы от 0 до 3 зарезервированы для четырех стандартных точек привязки, которые имеет большинство графических объектов. Точки привязки нумеруются по часовой стрелке, начиная с левой верхней вершины векторной фигуры.

<define name="draw-glue-point-attlist" combine="interleave">
    <attribute name="draw:id">
        <ref name="nonNegativeInteger"/>
    </attribute>
</define>
Положение[править]

Атрибуты svg:x и svg:y определяют положение точки привязки. Координаты являются или процентными значениями относительно центра графической фигуры, или, если также определен атрибут draw:align, абсолютными значениями дистанций до вершины, определенной атрибутом draw:align.

<define name="draw-glue-point-attlist" combine="interleave">
    <attribute name="svg:x">
        <choice>
            <ref name="distance"/>
            <ref name="percent"/>
        </choice>
            </attribute>
            <attribute name="svg:y">
        <choice>
            <ref name="distance"/>
            <ref name="percent"/>
        </choice>
    </attribute>
</define>
Выравнивание[править]

Атрибут draw:align определяет поведение выравнивания точки привязки в случае, когда изменяются размеры графического объекта и грань векторной фигуры, к которой относится положение точки привязки. Пропущенные значения атрибутов горизонтального или вертикального положения подразумевают, что точка привязки горизонтально или вертикально центрируется.

<define name="draw-glue-point-attlist" combine="interleave">
    <attribute name="draw:align">
        <choice>
            <value>top-left</value>
            <value>top</value>
            <value>top-right</value>
            <value>left</value>
            <value>center</value>
            <value>right</value>
            <value>bottom-left</value>
            <value>bottom-right</value>
        </choice>
    </attribute>
</define>
Направление выхода[править]

Атрибут draw:escape-direction определяет направление, в котором соединительная линия выходит из графического объекта, если соединительный элемент связан с точкой привязки. Значение horizontal подразумевает возможность выхода соединительной линии left (влево) или right (вправо), значение vertical подразумевает возможность выхода соединительной линии up (вверх) или down (вниз).Значение auto подразумевает возможность выхода соединительной линии в любом из четырех направлений.

<define name="draw-glue-points-attlist" combine="interleave">
    <attribute name="draw:escape-direction">
        <choice>
            <value>auto</value>
            <value>left</value>
            <value>right</value>
            <value>up</value>
            <value>down</value>
            <value>horizontal</value>
            <value>vertical</value>
        </choice>
    </attribute>
</define>

9.2.20 Датчики событий[править]

Векторные фигуры могут иметь присоединенные датчики событий. Датчики событий, присоединенные, например, к текстовому блоку или изображению, представлены элементами событий, описанными в разделе 12.4. Этот элемент располагается внутри элемента графического объекта, например, внутри элемента <draw:text-box> или <draw:image>.

9.3 Фреймы[править]

Фрейм — это прямоугольный контейнер, который может включать содержимое с расширенными возможностями, такое как текстовые блоки, изображения или объекты. Фреймы очень похожи на обычные векторные фигуры, но в отличие от них поддерживают некоторые функции, которые недоступны для обычных векторных фигур, такие как контуры, сенсорные изображения и гиперссылки. В частности, фреймы позволяют иметь множество преобразованных копий объекта. Например, фрейм может содержать объект наравне с изображением. В этом случае, приложение может выбирать содержимое, которое поддерживается им наилучшим образом. Если приложение поддерживает типы объектов, содержащихся в фрейме, оно, вероятно, будет отображать объект. Если приложение не поддерживает объект, оно будет отображать изображение.

В общем случае приложение не должно отображать больше одного элемента содержимого, расположенного во фрейме. Порядок элементов содержимого определяется предпочтениями автора документов относительно визуализации, где первый элемент-потомок является наиболее предпочтительным. Это означает, что приложение будет отображать дочерний элемент, который оно поддерживает. Фрейм должен включать как минимум один элемент содержимого. Включение различных элементов содержимого не обязательно. Приложения могут сохранять элементы содержимого, которые они не отображают, но не обязаны этого делать.

Внутри текстовых документов фреймы также используются для расположения содержимого за пределами обычной последовательности текста в документе.

Фреймы могут содержать:

  • текстовые блоки;
  • объекты, представленные или в формате OpenDocument, или в специальном бинарном формате объекта;
  • изображения;
  • апплеты;
  • плагины;
  • плавающие фреймы.

Так же, как и свойства форматирования векторных фигур, свойства форматирования фреймов хранятся в стилях, принадлежащих семейству graphic. Способ размещения фрейма в документе такой же, как и для векторных фигур.

<define name="draw-frame">
    <element name="draw:frame">
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-rel-size-attlist"/>
        <ref name="presentation-shape-attlist"/>
        <ref name="draw-frame-attlist"/>
        <zeroOrMore>
            <choice>
                <ref name="draw-text-box"/>
                <ref name="draw-image"/>
                <ref name="draw-object"/>
                <ref name="draw-object-ole"/>
                <ref name="draw-applet"/>
                <ref name="draw-floating-frame"/>
                <ref name="draw-plugin"/>
            </choice>
        </zeroOrMore>
        <optional>
          <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <optional>
            <ref name="draw-image-map"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <optional>
            <choice>
                <ref name="draw-contour-polygon"/>
                <ref name="draw-contour-path"/>
            </choice>
        </optional>
    </element>
</define>

С элементом <draw:frame> могут быть связаны следующие атрибуты:

  • положение, размер (относительные размеры, см. ниже), стиль, слой, Z-индекс, идентификатор, преобразование (см. раздел 9.2.15);
  • привязка, фон таблицы, конечное положение рисунка (см. раздел 9.2.16);
  • класс презентации (см. раздел 9.6.1);
  • копирование фреймов.

Следующие элементы могут быть расположены внутри элемента изображения:

Относительные размеры[править]

Для фреймов ширина и высота графического объекта может быть установлена как относительное значение с использованием атрибутов style:rel-width и style:rel-height. Относительное значение — это либо значение в процентах, либо специальное значение scale, либо специальное значение scale-min.

Интерпретация относительных значений зависит от привязки графического объекта. Если привязка для графического объекта в ячейке таблицы, то процентное значение берется относительно окружающего табличного блока. Если привязка графического объекта в текстовом блоке, процентное значение берется относительно окружающего текстового блока. В остальных случаях процентное значение берется относительно ширины страницы или окна.

Значение scale для ширины означает, что ширина должна вычисляться в зависимости от высоты, с тем чтобы пропорции оригинального объекта или изображения сохранялись.

Значение scale для высоты подразумевает, что высота должна вычисляться в зависимости от ширины, с тем чтобы пропорции оригинального объекта или изображения сохранялись.

Значение scale-min эквивалентно значению scale, за исключением того, что вычисленные ширина или высота — это минимальные величины, а не абсолютные значения.

Для поддержки приложений, которые не поддерживают относительные ширину и высоту, приложения, которые сохраняют атрибуты style:rel-width или style:rel-height, должны также предоставлять реальную ширину и высоту в атрибутах svg:width и svg:height/fo:min-height.

<define name="common-draw-rel-size-attlist">
    <ref name="common-draw-size-attlist"/>
    <optional>
        <attribute name="style:rel-width">
            <choice>
                <ref name="percent"/>
                <value>scale</value>
                <value>scale-min</value>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:rel-height">
            <choice>
                <ref name="percent"/>
                <value>scale</value>
                <value>scale-min</value>
            </choice>
        </attribute>
    </optional>
</define>

Копирование фреймов[править]

Многочисленные фреймы могут быть установлены для отображения одного и того же содержимого: например, для логотипа компании, который должен встречаться в любом месте каждой страницы, не являясь частью верхнего или нижнего колонтитула.

Фрейм может быть установлен на отображение содержимого другого фрейма, указанного атрибутом draw:copy-of. Это не воздействует на стиль и положение. Фрейм, имеющий атрибут draw:copy-of, имеет свои собственные стиль и положение и не использует их из указанного фрейма.

<define name="draw-frame-attlist" combine="interleave">
    <optional>
        <attribute name="draw:copy-of">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

9.3.1 Текстовый блок[править]

Элемент <draw:text-box> представляет текстовый блок. Текстовый блок может быть использован для помещения текста в контейнер, который находится за пределами текстовой полосы документа.

<define name="draw-text-box">
    <element name="draw:text-box">
        <ref name="draw-text-box-attlist"/>
        <zeroOrMore>
            <ref name="text-content"/>
        </zeroOrMore>
    </element>
</define>

С элементом <draw:text-box> могут быть связаны следующие атрибуты:

  • сцепка;
  • скругленные вершины;
  • минимальные высота и ширина;
  • максимальные высота и ширина.

Текстовые блоки не поддерживают контуры, описанные в разделе 9.3.8, и альтернативный текст, описанный в разделе 9.3.9.

Сцепка[править]

Текстовые блоки могут быть сцеплены, другими словами, если содержимое текстового блока выходит за его пределы, содержимое перетекает в следующий текстовый блок в последовательности. Чтобы сцепить текстовые блоки, используется атрибут draw:chain-next-name. Значением этого атрибута является имя следующего текстового блока в цепочке. Сцепленные текстовые блоки обычно поддерживаются только текстовыми документами.

<define name="draw-text-box-attlist" combine="interleave">
    <optional>
        <attribute name="draw:chain-next-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Скругленные вершины[править]

Атрибут draw:corner-radius определяет радиус окружности, используемой для скругления вершин текстового блока.

<define name="draw-text-box-attlist" combine="interleave">
    <optional>
        <attribute name="draw:corner-radius">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
</define>
Минимальные высота и ширина[править]

Атрибуты fo:min-height и fo:min-width определяют минимальную высоту или ширину для текстового блока. Если они существуют, то они перезаписывают высоту или ширину текстового блока, определенную атрибутами svg:height и svg:width окружающего элемента <draw:frame>. Их значения могут быть либо в единицах длины, либо в процентах. Если привязка текстового блока применена к ячейке таблицы, то процентное значение берется относительно окружающего табличного блока. Если привязка текстового блока применена к текстовому блоку, то процентное значение берется относительно окружающего текстового блока. В остальных случаях процентное значение берется относительно высоты страницы или окна.

<define name="draw-text-box-attlist" combine="interleave">
    <optional>
        <attribute name="fo:min-height">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:min-width">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
</define>
Максимальные высота и ширина[править]

Если ширина или высота текстового блока определена как минимальная ширина и высота (с использованием атрибутов fo:min-width или fo:min-height), то атрибуты fo:max-width и fo:max-height определяют максимальную ширину и высоту текстового блока. Когда достигаются эти максимальные значения, текстовый блок больше не увеличивается в размерах. Значения атрибутов могут быть либо в единицах длины, либо в процентах. Если привязка текстового блока применена к ячейке таблицы, то процентное значение берется относительно размеров окружающей ячейки таблицы. Если привязка текстового блока применена к текстовому блоку, то процентное значение берется относительно размеров окружающего текстового блока. В остальных случаях процентное значение берется относительно ширины или высоты страницы или окна.

<define name="draw-text-box-attlist" combine="interleave">
    <optional>
        <attribute name="fo:max-height">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:max-width">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
</define>

9.3.2 Изображение[править]

Элемент <draw:image> представляет изображение. Изображение может быть:

  • содержащимся в документе как ссылка на внешний ресурс;
  • внедренным в документ.

Этот элемент может быть [XLink], тогда случае элемент содержит некоторые атрибуты с фиксированными значениями, которые описывают семантику связи.

Поскольку данные изображения могут иметь произвольный формат, рекомендуется чтобы векторная графика сохранялась в формате [SVG], а растровая графика в формате [PNG].

<define name="draw-image">
    <element name="draw:image">
        <ref name="draw-image-attlist"/>
        <choice>
            <ref name="common-draw-data-attlist"/>
            <ref name="office-binary-data"/>
        </choice>
        <ref name="draw-text"/>
    </element>
</define>

С элементом <draw:image> могут быть связаны следующие атрибуты:

  • данные изображения;
  • имя фильтра.

Как и большинство других векторных фигур, фигуры изображения могут иметь текстовое содержимое. Оно отображается в дополнении к данным изображения.

Данные изображения[править]

Данные изображения могут быть сохранены одним из следующих способов.

  • Данные изображения хранятся во внешнем файле. Используется xlink:href и связанные атрибуты, описанные ниже, для связи с внешним файлом.
  • Данные изображения хранятся в элементе <draw:image>. В этом случае элемент <draw:image> содержит элемент <office:binary-data>, который состоит из данных изображения в кодировке BASE64 (определенный в [RFC2045]). В этой ситуации атрибут xlink:href не требуется.
<define name="common-draw-data-attlist" combine="interleave">
    <group>
        <attribute name="xlink:href">
            <ref name="anyURI"/>
        </attribute>
        <optional>
            <attribute name="xlink:type" a:defaultValue="simple">
                <choice>
                    <value>simple</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:show" a:defaultValue="embed">
                <choice>
                    <value>embed</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:actuate" a:defaultValue="onLoad">
                <choice>
                    <value>onLoad</value>
                </choice>
            </attribute>
        </optional>
    </group>
</define>

<define name="office-binary-data">
    <element name="office:binary-data">
        <ref name="base64Binary"/>
    </element>
</define>
Имя фильтра[править]

Если требуется, атрибут draw:filter-name может представлять имя фильтра изображения. Этот атрибут содержит имя внутреннего фильтра, который используется офисным приложением для загрузки графики.

<define name="draw-image-attlist" combine="interleave">
    <optional>
        <attribute name="draw:filter-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

9.3.3 Объекты[править]

Документ в формате OpenDocument может содержать два типа объектов.

  • Объекты, которые имеют представление OpenDocument. К ним относятся:

— формулы (представленные как [MathML]);

— диаграммы;

— электронные таблицы;

— текстовые документы;

— графические изображения;

— презентации.

  • Объекты, которые не имеют XML-представления. Эти объекты имеют только бинарное представление. Примером таких объектов могут служить OLE-объекты (см. [OLE]).

Элемент <draw:object> представляет объект, который имеет XML-представление. Элемент <draw:object-ole> представляет объект который имеет только бинарное представление.

<define name="draw-object">
    <element name="draw:object">
        <ref name="draw-object-attlist"/>
        <choice>
            <ref name="common-draw-data-attlist"/>
            <ref name="office-document"/>
            <ref name="math-math"/>
        </choice>
    </element>
</define>

<define name="draw-object-ole">
    <element name="draw:object-ole">
        <ref name="draw-object-ole-attlist"/>
        <choice>
            <ref name="common-draw-data-attlist"/>
            <ref name="office-binary-data"/>
        </choice>
    </element>
</define>

С элементами <draw:object> и <draw:object-ole> могут быть связаны следующие атрибуты:

  • данные объекта;
  • уведомление об изменении таблицы;
  • идентификатор класса.

Объекты не поддерживают преобразований, описанных в разделе 9.2.15.

Данные объекта[править]

Данные объекта могут быть вызваны одним из следующих способов.

  • Атрибут xlink:href ссылается на представление объекта, как описано ниже:

— для объектов, имеющих XML-представление, ссылка указывает на вложенный пакет объекта, причем объект, содержащийся внутри вложенной страницы, такой же, как если бы он содержался внутри документа;

— для объектов, не имеющих XML-представления, ссылка указывает на вложенный поток пакета, содержащего бинарное представление объекта.

Приложения, поддерживающие объекты, должны поддерживать связь с объектами, которые содержатся внутри того же пакета. Они могут также поддерживать связь с объектами, расположенными за пределами пакета.

  • Данные объекта содержатся в элементах <draw:object> или <draw:object-ole>:

— элемент <draw:object> содержит XML-представление объекта, например, элемент <office:document> или элемент <math:math>;

— элемент <draw:object-ole> содержит элемент <office:binary-data>, содержащий бинарные данные для объекта в кодировке BASE64.

В этих ситуациях атрибут xlink:href не требуется.

Атрибут xlink:href описан в разделе 9.3.2.

Рекомендуется включать представление изображения объекта во фрейм, в дополнение к самому объекту.

Уведомление об изменении таблицы[править]

Некоторые объекты, особенно диаграммы, могут требовать уведомления, когда таблица в документе изменяется. Для включения этих уведомлений используется атрибут draw:notify-on-change-of-table, который содержит имя таблицы. Этот атрибут может быть связан с элементом <draw:object>.

<define name="draw-object-attlist" combine="interleave">
    <optional>
        <attribute name="draw:notify-on-update-of-ranges">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Идентификатор класса[править]

Атрибут draw:class-id содержит идентификатор класса OLE-объекта (см. также [OLE]).

<define name="draw-object-ole-attlist" combine="interleave">
    <optional>
        <attribute name="draw:class-id"/>
    </optional>
</define>

9.3.4 Апплеты[править]

Апплет — это небольшая программа на языке Java, включенная в документ. Элемент <draw:applet> основывается на теге <applet> из [HTML4]. Этот элемент должен содержать либо атрибут draw:code, либо атрибут draw:object.

<define name="draw-applet">
    <element name="draw:applet">
        <ref name="draw-applet-attlist"/>
        <optional>
            <ref name="common-draw-data-attlist"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-param"/>
        </zeroOrMore>
    </element>
</define>

С элементом <draw:applet> могут быть связаны следующие атрибуты:

  • кодовая база;
  • код;
  • объект;
  • архив;
  • разрешение скрипта.

Единственный элемент, который может быть включен в элемент <draw:applet>:

Апплеты не поддерживают преобразований, описанных в разделе 9.2.15.

Кодовая база[править]

Кодовая база определяет базовый IRI для апплета. Если этот атрибут не определен, тогда по умолчанию устанавливается такой же IRI, как и для текущего документа. Кодовая база представляется атрибутами стандарта [XLink] xlink:href, xlink:type, xlink:show и xlink:actuate. Атрибут xlink:href описан в разделе 9.3.2.

Код[править]

Атрибут draw:code определяет одно из нижеперечисленного:

  • имя файла класса, который содержит скомпилированный подкласс апплета;
  • путь к классу, включая сам файл класса.

Обязательно наличие либо этого атрибута, либо атрибута draw:object. Значение данного атрибута интерпретируется в зависимости от кодовой базы апплета.

<define name="draw-applet-attlist" combine="interleave">
    <optional>
        <attribute name="draw:code"/>
    </optional>
</define>
Объект[править]

Атрибут draw:object определяет ресурс, который содержит сериализированное представление состояния апплета. Сериализированные данные содержат имя класса апплета, но не его реализацию. Значение данного атрибута интерпретируется в зависимости от кодовой базы апплета.

<define name="draw-applet-attlist" combine="interleave">
    <optional>
        <attribute name="draw:object"/>
    </optional>
</define>
Архив[править]

Атрибут draw:archive определяет список разделенных запятыми адресов URL для архивов, содержащих классы и другие предварительно загружаемые ресурсы.

<define name="draw-applet-attlist" combine="interleave">
    <optional>
        <attribute name="draw:archive"/>
    </optional>
</define>
Разрешение скрипта[править]

Атрибут draw:mayscript определяет, может ли апплет управляться скриптом.

<define name="draw-applet-attlist" combine="interleave">
    <optional>
        <attribute name="draw:may-script" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

9.3.5 Плагины[править]

Плагины — это бинарные объекты, которые вставляются в документ для отображения медиа-содержимого, которое обычно не обрабатывается офисными приложениями самостоятельно. Плагины представлены элементом <draw:plugin>.

<define name="draw-plugin">
    <element name="draw:plugin">
        <ref name="draw-plugin-attlist"/>
        <ref name="common-draw-data-attlist"/>
        <zeroOrMore>
            <ref name="draw-param"/>
        </zeroOrMore>
    </element>
</define>

С элементом <draw:plugin> могут быть связаны следующие атрибуты:

  • тип MIME;
  • источник.

Единственный элемент, который может содержаться внутри элемента <draw:plugin>, это:

Плагины не поддерживают преобразований, описанных в разделе 9.2.15.

Тип Mime[править]

Атрибут draw:mimetype определяет тип MIME, с которым данный плагин будет зарегистрирован.

<define name="draw-plugin-attlist" combine="interleave">
    <optional>
        <attribute name="draw:mime-type"/>
    </optional>
</define>
Источник[править]

Атрибуты [XLink] xlink:href, xlink:type, xlink:show и xlink:actuate определяют источник плагина. Атрибут xlink:href описан в разделе 9.3.2.

9.3.6 Параметры[править]

Элемент <draw:param> содержит параметры, которые передаются апплету или плагину при инициализации.

<define name="draw-param">
    <element name="draw:param">
        <ref name="draw-param-attlist"/>
        <empty/>
    </element>
</define>

С элементом <draw:param> могут быть связаны следующие атрибуты:

  • имя;
  • значение.
Имя[править]

Атрибут draw:name определяет имя параметра времени выполнения.

<define name="draw-param-attlist" combine="interleave">
    <optional>
        <attribute name="draw:name"/>
    </optional>
</define>
Значение[править]

Атрибут draw:value определяет значение параметра времени выполнения, заданного именем.

<define name="draw-param-attlist" combine="interleave">
    <optional>
        <attribute name="draw:value"/>
    </optional>
</define>

9.3.7 Плавающие фреймы[править]

Плавающие фреймы — это фреймы, включенные в документ, которые могут содержать, например, текстовый документ или электронную таблицу. Плавающий фрейм представлен элементом <draw:floating-frame>.

<define name="draw-floating-frame">
    <element name="draw:floating-frame">
        <ref name="draw-floating-frame-attlist"/>
        <ref name="common-draw-data-attlist"/>
    </element>
</define>

С элементом <draw:floating-frame> могут быть связаны следующие атрибуты:

  • источник;
  • имя фрейма.

Плавающие фреймы не поддерживают преобразований, описанных в разделе 9.2.15.

Источник[править]

Атрибуты [XLink] xlink:href, xlink:type, xlink:show и xlink:actuate определяют источник плавающего фрейма. Атрибут xlink:href описан в разделе 9.3.2.

Имя фрейма[править]

Атрибут draw:frame-name определяет имя фрейма. Это имя может быть использовано как целевой фрейм внутри гиперссылки.

<define name="draw-floating-frame-attlist" combine="interleave">
    <optional>
        <attribute name="draw:frame-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

9.3.8 Контур[править]

Элементы <draw:contour-polygon> и <draw:contour-path> могут содержаться внутри следующих элементов:

  • <draw:image>
  • <draw:object>
  • <draw:object-ole>
  • <draw:applet>
  • <draw:plugin>
  • <draw:floating-frame>

Эти элементы описывают контур изображения или объекта.

<define name="draw-contour-polygon">
    <element name="draw:contour-polygon">
        <ref name="common-contour-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-viewbox-attlist"/>
        <ref name="common-draw-points-attlist"/>
        <empty/>
    </element>
</define>

<define name="draw-contour-path">
    <element name="draw:contour-path">
        <ref name="common-contour-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-viewbox-attlist"/>
        <ref name="common-draw-path-data-attlist"/>
        <empty/>
    </element>
</define>

Элементы аналогичны элементам <draw:polygon> (см. раздел 9.2.4) и <draw:path> (см. раздел 9.2.6) за исключением того, что они определяют контур, а не векторную фигуру. Поддерживаемые ими атрибуты совпадают для размера, окна просмотра, точек (только для контура-многоугольника) и траектории (только для контура-траектории).

В отличие от остальных элементов, атрибуты svg:width и svg:height могут иметь значение длины в пикселях (т. е. 20 px) (так же, как традиционно, например, 2 см).

Перерисовка при редактировании[править]

Атрибут draw:recreate-on-edit определяет, будет ли контур изображения или объекта автоматически перерисовываться, когда изображение или объект редактируется.

<define name="common-contour-attlist" combine="interleave">
    <attribute name="draw:recreate-on-edit">
        <ref name="boolean"/>
    </attribute>
</define>

9.3.9 Альтернативный текст[править]

Элемент <svg:desc> определяет альтернативный текст, как описано в § 5.4 [SVG]. Он может использоваться со следующими элементами:

  • <draw:image>
  • <draw:object>
  • <draw:object-ole>
  • <draw:applet>
  • <draw:floating-frame>
  • <draw:plugin>
  • <draw:object-ole>
<define name="svg-desc">
    <element name="svg:desc">
      <text/>
    </element>
</define>

9.3.10 Гиперссылки[править]

Фреймы могут вести себя как гиперссылки. Такие гиперссылки представлены элементом <draw:a>, где содержимым элемента является фрейм, содержащий источник ссылки.

Этот элемент является [XLink] и имеет некоторые атрибуты с фиксированными значениями и описывает семантику ссылки.

<define name="draw-a">
    <element name="draw:a">
        <ref name="draw-a-attlist"/>
        <ref name="draw-frame"/>
    </element>
</define>

С элементом <draw:a> могут быть связаны следующие атрибуты:

  • адрес ссылки;
  • целевой фрейм ссылки;
  • имя;
  • серверное сенсорное изображение.
Адрес ссылки[править]

Атрибут xlink:href определяет целевой адрес ссылки.

<define name="draw-a-attlist" combine="interleave">
    <attribute name="xlink:href">
        <ref name="anyURI"/>
    </attribute>
    <optional>
        <attribute name="xlink:type" a:defaultValue="simple">
            <value>simple</value>
        </attribute>
    </optional>
    <optional>
        <attribute name="xlink:actuate" a:defaultValue="onRequest">
            <choice>
                <value>onRequest</value>
            </choice>
        </attribute>
    </optional>
</define>
Целевой фрейм ссылки[править]

Атрибут office:target-frame определяет целевой фрейм ссылки.

Атрибут может принимать одно из следующих значений:

  • _self — документ по ссылке заменяет содержимое текущего фрейма;
  • _blank — документ по ссылке открывается в новом фрейме;
  • _parent — документ по ссылке открывается в родительском по отношению к текущему фрейму фрейме;
  • _top — документ по ссылке отображается в самом верхнем фрейме, это фрейм, который содержит текущей фрейм в качестве дочернего, но который не содержится внутри никакого другого фрейма;
  • имя фрейма — документ по ссылке отображается в заданном фрейме. Если фрейм с таким именем отсутствует, будет создан новый фрейм с заданным именем.

Для соответствия спецификации [XLink] добавлен дополнительный атрибут xlink:show для элемента <draw:a>. Если значением атрибута xlink:show является _blank, то значением атрибута xlink:show будет new. Если значением атрибута xlink:show является одно из других возможных, значением атрибута xlink:show будет replace.

<define name="draw-a-attlist" combine="interleave">
    <optional>
        <attribute name="office:target-frame-name">
            <ref name="targetFrameName"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="xlink:show">
            <choice>
                <value>new</value>
                <value>replace</value>
            </choice>
        </attribute>
    </optional>
</define>
Имя[править]

Гиперссылка может иметь имя, но оно не является обязательным. Атрибут office:name определяет имя ссылки. Имя может служить целевым объектом для других гиперссылок. Имя не должно быть уникальным.

Этот атрибут определен только для совместимости со стандартом [HTML4], в котором элемент <a> может выступать и как источник ссылки, и как целевой объект одновременно. Мы настоятельно рекомендуем не использовать этот атрибут для каких-либо целей, кроме представления гиперссылки в оригинальном виде, как она представлена в HTML-документе.

<define name="draw-a-attlist" combine="interleave">
    <optional>
        <attribute name="office:name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Серверное сенсорное изображение[править]

Ссылка может быть серверным сенсорным изображением. Если указан атрибут office:server-map, координаты курсора мыши в позиции нажатия графической фигуры добавляются к IRI ссылки. Координаты могут использоваться сервером для определения, какую именно ссылку внутри сенсорного изображения активировать.

<define name="draw-a-attlist" combine="interleave">
    <optional>
        <attribute name="office:server-map" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

9.3.11 Клиентские сенсорные изображения[править]

Клиентские сенсорные изображения — это коллекция гиперссылок, связанных с графическими элементами. Сенсорное изображение — это последовательность элементов сенсорных изображений. Каждый элемент сенсорного изображения связывает гиперссылку с определенной областью. Эта область может быть одной из следующих форм:

  • прямоугольник;
  • круг;
  • многоугольник.

Элемент <draw:image-map> представляет сенсорное изображение.

<define name="draw-image-map">
    <element name="draw:image-map">
        <zeroOrMore>
            <choice>
                <ref name="draw-area-rectangle"/>
                <ref name="draw-area-circle"/>
                <ref name="draw-area-polygon"/>
            </choice>
        </zeroOrMore>
    </element>
</define>

Элемент <draw:image-map> может содержать три типа элементов сенсорных изображений, которые представляют три типа областей сенсорных изображений:

  • прямоугольные элементы сенсорного изображения;
  • круглые элементы сенсорного изображения;
  • многоугольные элементы сенсорного изображения.

Элементы сенсорных изображений описываются в терминах абсолютного положения. Офисное приложение при загрузке XML-файла должно отобразить сенсорное изображение в связанный с ним графический элемент, например, изображение в оригинальном размере. Затем приложение должно масштабировать сенсорное изображение таким образом, чтобы оно соответствовало текущему размеру изображения, но в формате файла всегда сохраняется в немасштабируемом виде, приведенном в соответствие с размерами немасштабированного изображения.

Прямоугольные области сенсорного изображения[править]

Элемент <draw:area-rectangle> описывает прямоугольную область сенсорного изображения путем задания положения x, y (атрибуты svg:x и svg:y), а также ширины и высоты (атрибуты svg:width и svg:height). Это обязательные атрибуты. В дополнение к этому, атрибуты, описанные в нижеследующем разделе Общие атрибуты и элементы сенсорных изображений, устанавливаются по выбору.

<define name="draw-area-rectangle">
    <element name="draw:area-rectangle">
        <ref name="common-draw-area-attlist"/>
        <attribute name="svg:x">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:y">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:width">
            <ref name="length"/>
        </attribute>
        <attribute name="svg:height">
            <ref name="length"/>
        </attribute>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
    </element>
</define>
Круглые области сенсорного изображения[править]

Элемент <draw:area-circle> описывает круглую область сенсорного изображения. Дополнительные атрибуты для круглых областей сенсорного изображения описаны ниже, в разделе общих атрибутов.

Обязательные атрибуты svg:cx и svg:cy определяют центр окружности. Обязательный атрибут svg:r определяет радиус окружности.

Атрибуты, описанные в разделе Общие атрибуты и элементы сенсорных изображений, являются необязательными.

<define name="draw-area-circle">
    <element name="draw:area-circle">
        <ref name="common-draw-area-attlist"/>
        <attribute name="svg:cx">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:cy">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:r">
            <ref name="length"/>
        </attribute>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
    </element>
</define>
Многоугольные области сенсорного изображения[править]

Элемент <draw:area-polygon> описывает многоугольную область сенсорного изображения. Многоугольная область сенсорного изображения включает в себя следующие компоненты.

  • Обрамляющая рамка.

Обрамляющая рамка, которая представляется так же, как и прямоугольная область сенсорного изображения с использованием атрибутов svg:x, svg:y, svg:width, и svg:height, устанавливает фрейм, на который ссылаются область отображения и последовательность точек многоугольника. Указанный фрейм делает доступными координаты, которые будут преобразовываться в абсолютные координаты.

  • Область отображения.

Атрибут области отображения svg:viewBox устанавливает систему координат для последовательности точек. Область отображения позволяет избежать необходимость записывать каждую точку из последовательности абсолютными координатами с длинами и единицами измерения.

  • Последовательность точек в координатах области отображения, указанная в атрибуте svg:points.

Для получения дополнительной информации о задании многоугольника см. раздел 9.2.4.

Описанные выше атрибуты являются обязательными. Атрибуты, описанные в разделе Общие атрибуты и элементы сенсорных изображений, являются необязательными.

<define name="draw-area-polygon">
    <element name="draw:area-polygon">
        <ref name="common-draw-area-attlist"/>
        <attribute name="svg:x">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:y">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:width">
            <ref name="length"/>
        </attribute>
        <attribute name="svg:height">
            <ref name="length"/>
        </attribute>
        <ref name="common-draw-viewbox-attlist"/>
        <ref name="common-draw-points-attlist"/>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
    </element>
</define>

Пример — Многоугольная область сенсорного изображения.

Элемент, показанный в следующем примере, определяет треугольник, который расположен в центре изображения размером 2 см на 2 см. Обрамляющая рамка покрывает область размером 2 см на 1,5 см. Одна единица области отображения соответствует 0,01 мм.

<draw:area-polygon ...
    svg:x="0" svg:y="0" svg:width="2.0cm" svg:height="2.0cm"
    svg:viewBox="0 0 2000 2000"
    svg:points="400,1500 1600,1500 1000,400"/>
Общие атрибуты и элементы сенсорных изображений[править]

В дополнение к атрибутам векторной фигуры, каждый элемент сенсорного изображения может содержать следующую информацию:

  • ссылка, включающая IRI и целевой фрейм ссылки;
  • имя;
  • флаг активности;
  • описание (используется дочерний элемент <svg:desc>, как описано в разделе 9.3.9);
  • события, связанные с областью (используется дочерний элемент <office:event-listeners>, как описано в разделе 12.4).

Остальные атрибуты сенсорных изображений взяты из HTML-представления сенсорного изображения.

Каждый элемент сенсорного изображения идентифицирует гиперссылку и использует атрибуты стандарта [XLink] href, type, и show, а также атрибут office:target-frame-name для описания ссылки.

<define name="common-draw-area-attlist" combine="interleave">
    <optional>
        <attribute name="xlink:href">
            <ref name="anyURI"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="xlink:type" a:defaultValue="simple">
            <choice>
                <value>simple</value>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="office:target-frame-name">
            <ref name="targetFrameName"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="xlink:show">
            <choice>
                <value>new</value>
                <value>replace</value>
            </choice>
        </attribute>
    </optional>
</define>

Атрибут office:name присваивает имя каждому элементу сенсорного изображения.

<define name="common-draw-area-attlist" combine="interleave">
    <optional>
        <attribute name="office:name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

Атрибут draw:nohref объявляет о том, что элемент сенсорного изображения и связанная с ним область не активна. Содержащийся внутри элемента сенсорного изображения IRI не используется.

<define name="common-draw-area-attlist" combine="interleave">
    <optional>
        <attribute name="draw:nohref">
            <choice>
                <value>nohref</value>
            </choice>
        </attribute>
    </optional>
</define>

9.4 Трехмерные фигуры[править]

9.4.1 Сцена[править]

Элемент <dr3d:scene> является единственным элементом, который может содержать трехмерные фигуры. Сцена подобна группе, но кроме того она устанавливает проекцию, освещение и другие детали формирования изображения для фигур внутри сцены.

<define name="dr3d-scene">
    <element name="dr3d:scene">
        <ref name="dr3d-scene-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-style-name-attlist"/>
        <ref name="common-draw-z-index-attlist"/>
        <ref name="common-draw-id-attlist"/>
        <ref name="common-draw-layer-name-attlist"/>
        <ref name="common-text-spreadsheet-shape-attlist"/>
        <ref name="common-dr3d-transform-attlist"/>
        <zeroOrMore>
            <ref name="dr3d-light"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="shapes3d"/>
        </zeroOrMore>
    </element>
</define>

<define name="shapes3d">
    <choice>
        <ref name="dr3d-scene"/>
        <ref name="dr3d-extrude"/>
        <ref name="dr3d-sphere"/>
        <ref name="dr3d-rotate"/>
        <ref name="dr3d-cube"/>
    </choice>
</define>

С данным элементом могут быть связаны следующие атрибуты:

  • положение, размер, стиль, слой, Z-индекс, идентификатор (см. раздел 9.2.15);
  • привязка, фон таблицы, конечное положение рисунка (см. раздел 9.2.16);
  • векторы камеры;
  • проекция;
  • дистанция;
  • фокусное расстояние;
  • наклон тени;
  • режим затенения;
  • окружающий свет;
  • режим освещения.
Векторы камеры[править]

Векторы камеры определяют видимый объем. Атрибут dr3d:vrp определяет начало координат, атрибут dr3d:vpn указывает направление к строящемуся объекту, атрибут dr3d:vup определяет верхний вектор.

<define name="dr3d-scene-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:vrp">
            <ref name="vector3D"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="dr3d:vpn">
            <ref name="vector3D"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="dr3d:vup">
            <ref name="vector3D"/>
        </attribute>
    </optional>
</define>
Проекция[править]

Атрибут dr3d:projection определяет проекцию. Проекция может быть аксонометрической или параллельной. В аксонометрическом режиме объекты выглядят меньше на расстоянии.

<define name="dr3d-scene-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:projection">
            <choice>
                <value>parallel</value>
                <value>perspective</value>
            </choice>
        </attribute>
    </optional>
</define>
Дистанция[править]

Атрибут dr3d:distance определяет расстояние между камерой и объектом.

<define name="dr3d-scene-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:distance">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
Фокусное расстояние[править]

Атрибут dr3d:focal-length определяет фокусное расстояние для виртуальной камеры данной сцены.

<define name="dr3d-scene-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:focal-length">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
Наклон тени[править]

Атрибут dr3d:shadow-slant определяет угол между трехмерной сценой и виртуальной поверхностью, на которую падает тень.

<define name="dr3d-scene-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:shadow-slant">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
Режим затенения[править]

Режим затенения определяет, каким образом рассчитывается освещение при прорисовке поверхностей:

  • flat — освещение рассчитывается по одной нормали поверхности;
  • phong — освещение рассчитывается путем интерполирования нормалей поверхности по всей поверхности;
  • gouraud — освещение рассчитывается путем интерполирования цвета с нормалями поверхности на каждой грани;
  • draft — поверхность не освещается и отображается только ее каркас.
<define name="dr3d-scene-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:shade-mode">
            <choice>
                <value>flat</value>
                <value>phong</value>
                <value>gouraud</value>
                <value>draft</value>
            </choice>
        </attribute>
    </optional>
</define>
Окружающий свет[править]

Атрибут dr3d:ambient-color определяет цвет окружающего освещения. Окружающее освещение — это освещение, которое выглядит как исходящее со всех направлений.

<define name="dr3d-scene-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:ambient-color">
            <ref name="color"/>
        </attribute>
    </optional>
</define>
Режим освещения[править]

Атрибут dr3d:lighting-mode включает или выключает использование света на трехмерной сцене.

<define name="dr3d-scene-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:lighting-mode">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Трехмерное преобразование[править]

Значением атрибута dr3d:transform является список определений преобразований, которые применяются в том порядке, в котором они перечислены в списке. Одиночные определения преобразований разделяются пробельными символами. Допустимые типы определений преобразований включают:

  • matrix (<a> <b> <c> <d> <e> <f> <g> <h> <i> <j> <k> <l>) — определяет преобразование в виде матрицы преобразований шести значений. matrix(a,b,c,d,e,f,g,h,i,j,k,l) эквивалентно применению матрицы преобразований [a b c d e f g h i j k l];
  • translate (<tx> <ty> <tz>) — определяет перемещение на tx, ty и tz;
  • scale (<sx> <sy> <sz>) — определяет операцию масштабирования на sx, sy и sz;
  • rotatex (<rotate-angle>) — определяет вращение на <rotate-angle> градусов вокруг оси x;
  • rotatey (<rotate-angle>), который определяет вращение на <rotate-angle> градусов вокруг оси y.
  • rotatez (<rotate-angle>) — определяет вращение на <rotate-angle> градусов вокруг оси z.
<define name="common-dr3d-transform-attlist">
    <optional>
        <attribute name="dr3d:transform"/>
    </optional>
</define>

9.4.2 Источник света[править]

Элемент <dr3d:light> представляет источник света в сцене.

Этот элемент должен быть первым элементом, содержащимся в элементе <dr3d:scene>. Может быть указано несколько источников света, но приложения могут поддерживать только ограниченное их количество внутри одной сцены. Обычное ограничение — 8 источников света на одну сцену.

<define name="dr3d-light">
    <element name="dr3d:light">
        <ref name="dr3d-light-attlist"/>
        <empty/>
    </element>
</define>

С элементом <dr3d:light> могут быть связаны следующие атрибуты:

  • рассеянный;
  • направление;
  • включенный;
  • отраженный.
Рассеянный[править]

Атрибут dr3d:diffuse-color определяет базовый цвет распространяемого света.

<define name="dr3d-light-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:diffuse-color">
            <ref name="color"/>
        </attribute>
    </optional>
</define>
Направление[править]

Атрибут dr3d:direction определяет направление, в котором распространяется свет.

<define name="dr3d-light-attlist" combine="interleave">
    <attribute name="dr3d:direction">
        <ref name="vector3D"/>
    </attribute>
</define>
Включенный[править]

Атрибут dr3d:enabled определяет, включен или нет источник света. Если источник света не включен, он не распространяет никакого света.

<define name="dr3d-light-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:enabled">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Отраженный[править]

Атрибут dr3d:specular определяет, будет ли свет от источника создавать отражение на объектах. Приложения могут рассчитать этот атрибут только для первого источника в сцене.

<define name="dr3d-light-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:specular">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

9.4.3 Куб[править]

Элемент <dr3d:cube> представляет трехмерную кубическую фигуру.

<define name="dr3d-cube">
    <element name="dr3d:cube">
        <ref name="dr3d-cube-attlist"/>
        <ref name="common-draw-z-index-attlist"/>
        <ref name="common-draw-id-attlist"/>
        <ref name="common-draw-layer-name-attlist"/>
        <ref name="common-draw-style-name-attlist"/>
        <ref name="common-dr3d-transform-attlist"/>
        <empty/>
    </element>
</define>

С элементом <dr3d:cube> могут быть связаны следующие атрибуты:

  • стиль, слой, Z-индекс и идентификатор (см. раздел 9.2.15);
  • минимальная и максимальная грань.
Минимальная и максимальная грань[править]

Атрибуты dr3d:min-edge и dr3d:max-edge определяют минимальную и максимальную грань куба в трехмерном пространстве.

<define name="dr3d-cube-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:min-edge">
            <ref name="vector3D"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="dr3d:max-edge">
            <ref name="vector3D"/>
        </attribute>
    </optional>
</define>

9.4.4 Сфера[править]

Элемент <dr3d:sphere> представляет трехмерную сферическую фигуру.

<define name="dr3d-sphere">
    <element name="dr3d:sphere">
        <ref name="dr3d-sphere-attlist"/>
        <ref name="common-draw-z-index-attlist"/>
        <ref name="common-draw-id-attlist"/>
        <ref name="common-draw-layer-name-attlist"/>
        <ref name="common-draw-style-name-attlist"/>
        <ref name="common-dr3d-transform-attlist"/>
        <empty/>
    </element>
</define>

С элементом <dr3d:sphere> могут быть связаны следующие атрибуты:

  • стиль, слой, Z-индекс и идентификатор (см. раздел 9.2.15);
  • центр;
  • размер.
Центр[править]

Атрибут dr3d:center определяет центр сферы в трехмерном пространстве.

<define name="dr3d-sphere-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:center">
            <ref name="vector3D"/>
        </attribute>
    </optional>
</define>
Размер[править]

Атрибут dr3d:size определяет размер сферы в трехмерном пространстве.

<define name="dr3d-sphere-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:size">
            <ref name="vector3D"/>
        </attribute>
    </optional>
</define>

9.4.5 Выдавливание[править]

Элемент <dr3d:extrude> представляет трехмерное выдавливание, основанное на многоугольнике.

<define name="dr3d-extrude">
    <element name="dr3d:extrude">
        <ref name="common-draw-path-data-attlist"/>
        <ref name="common-draw-viewbox-attlist"/>
        <ref name="common-draw-id-attlist"/>
        <ref name="common-draw-z-index-attlist"/>
        <ref name="common-draw-layer-name-attlist"/>
        <ref name="common-draw-style-name-attlist"/>
        <ref name="common-dr3d-transform-attlist"/>
        <empty/>
    </element>
</define>

С элементом <dr3d:extrude> могут быть связаны следующие атрибуты:

  • область отображения, стиль, слой, Z-индекс, идентификатор (см. раздел 9.2.15);
  • данные траектории (см. раздел 9.2.6).

9.4.6 Вращение[править]

Элемент <dr3d:rotate> представляет трехмерную фигуру вращения, основанную на многоугольнике.

<define name="dr3d-rotate">
    <element name="dr3d:rotate">
        <ref name="common-draw-viewbox-attlist"/>
        <ref name="common-draw-path-data-attlist"/>
        <ref name="common-draw-z-index-attlist"/>
        <ref name="common-draw-id-attlist"/>
        <ref name="common-draw-layer-name-attlist"/>
        <ref name="common-draw-style-name-attlist"/>
        <ref name="common-dr3d-transform-attlist"/>
        <empty/>
    </element>
</define>

С элементом <dr3d:rotate> могут быть связаны следующие атрибуты:

  • область отображения, стиль, слой, Z-индекс, идентификатор (см. раздел 9.2.15);
  • данные траектории (см. раздел 9.2.6).

9.5 Специальные фигуры[править]

Элемент <draw:custom-shape> представляет векторную фигуру, допускающую прорисовку множества образов. Элемент предлагает работу со шрифтом и выдавливанием. Специальная фигура может иметь геометрию, влияющую на ее векторные фигуры. Эта геометрия может быть отображена в пользовательском интерфейсе офисных приложений, например, отображением интерактивных обработчиков, представляющих простой путь изменения геометрии.

<define name="draw-custom-shape">
    <element name="draw:custom-shape">
        <ref name="draw-custom-shape-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
            <ref name="draw-text"/>
        <optional>
            <ref name="draw-enhanced-geometry"/>
        </optional>
    </element>
</define>

С элементом <draw:custom shape> могут быть связаны следующие атрибуты:

  • положение, размер, стиль, слой, Z-индекс, идентификатор, преобразование (см. раздел 9.2.15);
  • привязка, фон таблицы, конечное положение рисунка (см. раздел 9.2.16);
  • механизм рисования;
  • данные рисования.

Механизм рисования[править]

Необязательный атрибут draw:engine определяет имя механизма отображения, который будет использоваться для построения изображения специфической фигуры. Значением атрибута является токен пространства имен, имеющий префикс пространства имен XML, как и любой атрибут или элемент этой спецификации. Механизм рисования может либо получать данные из атрибута draw:data, либо вычислять дочерний элемент <draw:enhanced-geometry>.

Если атрибут draw:engine пропущен, будет использован стандартный механизм рисования офисного приложения для отображения специальных фигур. Этот механизм получает данные о геометрии только от элемента <draw:enhanced-geometry>.

<define name="draw-custom-shape-attlist" combine="interleave">
    <optional>
        <attribute name="draw:engine">
            <ref name="namespacedToken"/>
        </attribute>
    </optional>
</define>

Данные рисования[править]

Атрибут draw:data содержит специфические данные механизма прорисовки, которые описывают геометрию специфической фигуры. Этот атрибут вычисляется только в случае установки в атрибуте draw:engine значения не по умолчанию.

<define name="draw-custom-shape-attlist" combine="interleave">
    <optional>
        <attribute name="draw:data">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

9.5.1 Расширенная геометрия[править]

Элемент <draw:enhanced-geometry> содержит геометрию для элемента <draw:custom-shape> в том случае, если его атрибут draw:engine пропущен.

<define name="draw-enhanced-geometry">
    <element name="draw:enhanced-geometry">
        <ref name="draw-enhanced-geometry-attlist"/>
        <zeroOrMore>
            <ref name="draw-equation"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="draw-handle"/>
        </zeroOrMore>
    </element>
</define>

С элементом <draw:enhanced-geometry> могут быть связаны следующие атрибуты:

  • тип;
  • область отображение;
  • отражение;
  • угол поворота текста;
  • допустимость выдавливания;
  • допустимость текстовой траектории;
  • допустимость концентрической градиентной заливки;
  • расширенная геометрия: атрибуты выдавливания (см. раздел 9.5.2);
  • расширенная геометрия: атрибуты траектории (см. раздел 9.5.3);
  • расширенная геометрия: атрибуты траектории текста (см. раздел 9.5.4);
  • расширенная геометрия: уравнение (см. раздел 9.5.5);
  • расширенная геометрия: атрибуты меток-манипуляторов (см. раздел 9.5.6).
Тип[править]

Атрибут draw:type содержит имя типа фигуры. Это имя может быть использовано для предоставления специализированного пользовательского интерфейса для определенного типа, например для стрелок, смайлов и т. п.

Тип фигуры зависит от механизма рисования и никак не влияет на геометрию фигуры. Если значением атрибута draw:type является non-primitive, то тип фигуры не определен.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:type" a:defaultValue="non-primitive">
            <ref name="custom-shape-type"/>
        </attribute>
    </optional>
</define>

<define name="custom-shape-type">
    <choice>
        <value>non-primitive</value>
        <ref name="string"/>
    </choice>
</define>
Область отображения[править]

Атрибут svg:viewBox устанавливает пользовательскую систему координат внутри физической системы координат фигуры, заданной путем определения атрибутов положения и размера. Пользовательская система координат используется элементом <draw:enhanced-path>.

Синтаксис использования данного атрибута такой же, как и синтаксис стандарта [SVG]. Значениями данного атрибута являются четыре числа, разделенные пробельными символами. Они определяют левое, верхнее, правое и нижние измерения пользовательской системы координат.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="svg:viewBox">
            <list>
                <ref name="integer"/>
                <ref name="integer"/>
                <ref name="integer"/>
                <ref name="integer"/>
            </list>
        </attribute>
    </optional>
</define>
Отражение[править]

Атрибуты draw:mirror-vertical и draw:mirror-horizontal определяют, будет ли геометрия фигуры отображаться зеркально.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:mirror-vertical" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:mirror-horizontal" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Угол поворота текста[править]

Атрибут draw:text-rotate-angle определяет угол, на который будет повернут текст внутри специальной фигуры, в дополнение к вращению, включенному в атрибут draw:transform.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:text-rotate-angle" a:defaultValue="0">
            <ref name="double"/>
        </attribute>
    </optional>
</define>
Допустимость выдавливания[править]

Атрибут draw:extrusion-allowed определяет, будет ли у фигуры возможность отображаться как объекту выдавливания.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-allowed" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Допустимость текстовой траектории[править]

Атрибут draw:text-path-allowed определяет, может ли фигура отображаться как объект текстовых эффектов. Текст объекта текстовых эффектов отличается от обычных текстовых объектов возможностью отображать текст вдоль или между линий, определенных атрибутом draw:enhanced-path. Объекты текстовых эффектов способны поддерживать стандартные графические атрибуты, такие как заливка, тень или стиль линий.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:text-path-allowed" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Допустимость концентрической градиентной заливки[править]

Атрибут draw:concentric-gradient-fill-allowed определяет, может ли фигура отображаться с концентрической градиентной заливкой, использующей траекторию специальной фигуры.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:concentric-gradient-fill-allowed"
                    a:defaultValue="false">
          <ref name="boolean"/>
        </attribute>
    </optional>
</define>

9.5.2 Расширенная геометрия: атрибуты выдавливания[править]

Выдавливание[править]

Атрибут draw:extrusion определяет, будет ли отображаться выдавливание.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Яркость выдавливания[править]

Атрибут draw:extrusion-brightness определяет яркость сцены.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-brightness" a:defaultValue="33%">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
Глубина выдавливания[править]

Атрибут draw:extrusion-depth определяет глубину выдавливания. Он берет два значения, разделенных пробельными символами. Первое значение определяет глубину выдавливания, второе значение определяет фрагмент выдавливания, лежащий перед фигурой. Он должен быть в диапазоне [0,1]. Значение 0 устанавливается по умолчанию.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-depth" a:defaultValue="36pt 0">
            <list>
                <ref name="length"/>
                <ref name="double"/>
            </list>
        </attribute>
    </optional>
</define>
Диффузия выдавливания[править]

Величина диффузии, отражаемой фигурой, определяется атрибутом draw:extrusion-diffusion.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-diffusion" a:defaultValue="0%">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
Количество сегментов линии выдавливания[править]

Атрибут draw:extrusion-number-of-line-segments определяет количество сегментов линии, которые будут использоваться для отображения кривых поверхностей. Чем больше число, тем больше сегментов используется.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-number-of-line-segments"
                   a:defaultValue="30">
            <ref name="integer"/>
        </attribute>
    </optional>
</define>
Фронтальное освещение выдавливания[править]

Атрибут draw:extrusion-light-face определяет, реагирует ли передняя грань выдавливания на изменение освещения.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-light-face" a:defaultValue="true">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Резкость первого источника света выдавливания[править]

Атрибут draw:extrusion-first-light-harsh определяет, является ли первый источник света резким.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-first-light-harsh"
                   a:defaultValue="true">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Резкость второго источника света выдавливания[править]

Атрибут draw:extrusion-second-light-harsh определяет, является ли второй источник света резким.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-second-light-harsh"
                   a:defaultValue="true">
          <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Интенсивность первого источника света выдавливания[править]

Атрибут draw:extrusion-first-light-level определяет интенсивность первого источника света.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-first-light-level"
                   a:defaultValue="66%">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
Интенсивность второго источника света выдавливания[править]

Атрибут draw:extrusion-second-light-level определяет интенсивность второго источника света.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-second-light-level"
                   a:defaultValue="66%">
          <ref name="percent"/>
        </attribute>
    </optional>
</define>
Направление первого источника света выдавливания[править]

Атрибут draw:extrusion-first-light-direction определяет направление первого источника света.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-first-light-direction"
                   a:defaultValue="(5 0 1)">
          <ref name="vector3D"/>
        </attribute>
    </optional>
</define>
Направление второго источника света выдавливания[править]

Атрибут draw:extrusion-second-light-direction определяет направление второго источника света.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-second-light-direction"
                   a:defaultValue="(-5 0 1)">
          <ref name="vector3D"/>
        </attribute>
    </optional>
</define>
Металлическое выдавливание[править]

Атрибут draw:extrusion-metal определяет, будет ли поверхность выдавливания выглядеть как металлическая.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-metal" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Режим затенения выдавливания[править]

Атрибут dr3d:shade-mode определяет, каким образом будет рассчитываться освещение при прорисовке поверхностей:

  • flat — освещение рассчитывается по одной нормали поверхности;
  • phong — освещение рассчитывается путем интерполяции нормалей поверхности по всей поверхности;
  • gouraud — освещение рассчитывается путем интерполяции цвета с нормалями поверхности на каждой грани;
  • draft — поверхность не освещается и отображается только ее каркас.
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:shade-mode" a:defaultValue="flat">
            <choice>
                <value>flat</value>
                <value>phong</value>
                <value>gouraud</value>
                <value>draft</value>
            </choice>
        </attribute>
    </optional>
</define>
Угол вращения выдавливания[править]

Первое значение атрибута draw:extrusion-rotation-angle определяет вращение вокруг оси x. Второе значение атрибута draw:extrusion-rotation-angle определяет вращение вокруг оси y. Вращение вокруг оси z определяется углом вращения атрибута draw:transform.

Порядок вращения: вокруг оси z, вокруг оси y, затем вокруг оси x.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-rotation-angle" a:defaultValue="0 0">
            <list>
                <ref name="double"/>
                <ref name="double"/>
            </list>
        </attribute>
    </optional>
</define>
Центр вращения выдавливания[править]

Атрибут draw:extrusion-rotation-center определяет положение центральной точки вращения в терминах размеров фрагментов фигуры. Если этот атрибут пропущен, то используется геометрический центр фигуры.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-rotation-center">
            <ref name="vector3D"/>
        </attribute>
    </optional>
</define>
Глянцевость выдавливания[править]

Атрибут draw:extrusion-shininess определяет глянцевость отражения.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-shininess" a:defaultValue="50%">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
Наклон выдавливания[править]

Атрибут draw:extrusion-skew определяет величину наклона и угол наклона выдавливания. Настройки наклона применяются только в том случае, если значением атрибута dr3d:projection является parallel.

Первый параметр определяет величину наклона в процентах, второй параметр определяет угол наклона выдавливания.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-skew" a:defaultValue="50 45">
            <list>
                <ref name="double"/>
                <ref name="double"/>
            </list>
        </attribute>
    </optional>
</define>
Отражение выдавливания[править]

Атрибут draw:extrusion-specularity определяет отражение объекта выдавливания.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-specularity" a:defaultValue="0%">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
Режим проецирования выдавливания[править]

Атрибут dr3d:projection определяет режим проецирования: аксонометрический или параллельный.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:projection" a:defaultValue="parallel">
            <choice>
                <value>parallel</value>
                <value>perspective</value>
            </choice>
        </attribute>
    </optional>
</define>
Точка обзора выдавливания[править]

Атрибут draw:extrusion-viewpoint определяет точку обзора наблюдателя как точку в трехмерном пространстве. Синтаксис значения атрибута похож на синтаксис vector3D, только единица измерения следует за каждым параметром. Пример 3D-точки: (1cm 1cm 0m).

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-viewpoint"
                   a:defaultValue="3.5cm -3.5cm 25cm">
            <ref name="point3D"/>
        </attribute>
    </optional>
</define>

<define name="point3D">
    <data type="string"/>
</define>
Начало координат выдавливания[править]

Атрибут draw:extrusion-origin определяет начало координат выдавливания внутри обрамляющей рамки в частях фигуры.

Первый параметр представляет точку отсчета по горизонтали, значение «минус 0.5» представляет левый край фигуры, значение «0» представляет центр фигуры, значение «0.5» представляет правый край фигуры.

Второй параметр представляет точку отсчета по вертикали, значение «минус 0.5» представляет верхний край фигуры, значение «0» представляет центр фигуры, значение «0.5» представляет нижний край фигуры.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-origin" a:defaultValue="0.5 -0.5">
            <list>
                <ref name="double"/>
                <ref name="double"/>
            </list>
        </attribute>
    </optional>
</define>
Цвет выдавливания[править]

Атрибут draw:extrusion-color определяет, используется ли цвет выдавливания. Цвет выдавливания затем задается атрибутом draw:secondary-fill-color, определенном в графическом стиле специальной фигуры.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-color" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

9.5.3 Расширенная геометрия: атрибуты траектории[править]

Расширенная траектория[править]

Атрибут draw:enhanced-path определяет траекторию аналогично атрибуту svg:d элемента <svg:path>. Инструкции, такие как moveto, lineto, arcto и другие, вместе с их параметрами описывают геометрию фигуры, которая может быть заполнена цветом и/или заштрихована. Относительные команды не поддерживаются.

Синтаксис атрибута draw:enhanced-path представлен ниже.

  • Инструкции представляются в виде одного символа (например moveto представляется как M).
  • Используется префиксная нотация, которая означает что за каждой командой следуют ее параметры.
  • Излишние пробельные символы и разделители, такие как запятые, могут быть пропущены (например, "M 10 10 L 20 20 L 30 20" можно записать в виде: "M10 10L20 20L30 20".
  • Если команда повторяется несколько раз, требуется только первая команда (например "M 10 10 L 20 20 L 30 20" можно записать в виде "M 10 10 L 20 20 30 20".
  • Могут использоваться числа с плавающей точкой, поэтому единственный доступный десятичный разделитель — это точка («.»).

Приведенные выше правила совпадают с определенными для элемента <svg:path>.

Параметр может иметь одно из следующих расширений.

  • Символ «?» для отметки начала имени формулы. В этом случае результат атрибута элемента draw:formula используется как значение параметра.
  • Если символ «$» предшествует целому значению, значение является индексом атрибута draw:modifiers. В этом случае значение соответствующего модификатора используется как значение параметра.

Следующие обозначения используются в таблице ниже:

  • () — группировка параметров;
  • + — требуется 1 или более параметров.

Пример — для специальной фигуры, использующей draw:enhanced-path для описания круговой диаграммы, из которой убран сегмент правой верхней четверти:

<draw:custom-shape
    svg:width="10cm" svg:height="10cm" svg:x="0cm" svg:y="0cm">
    <draw:enhanced-geometrysvg:viewBox="0 0 10 10"
        draw:enhanced-path="V 0 0 10 10 10 5 5 0 L 5 5 Z N">
    </draw:enhanced-geometry>
</draw:custom-shape>

Поддерживаются следующие команды:

Команда Имя Параметры Описание
M moveto (x y) + Начинает новую вложенную траекторию с координат (x, y). Если за moveto следует множество пар координат, они интерпретируются как lineto
L lineto (x y) + Рисует линию от текущей точки до точки (x, y). Если следует неоднократное указание пар координат, они все интерпретируются как lineto
C curveto (x1 y1 x2 y2 x y) + Рисует кубическую кривую Безье от текущей точки к точке (x, y), используя (x1, y1) как контрольную точку в начале кривой и (x2, y2) как контрольную точку в конце кривой
Z closepath (none) Закрывает текущую вложенную траекторию путем рисования прямой линии между текущей точкой и начальной точкой текущей вложенной траектории
N endpath (none) Заканчивает текущее множество вложенных траекторий. Вложенные траектории будут закрашены с использованием eofill. Следующие вложенные траектории будут закрашиваться независимо
F nofill (none) Определяет, что текущее множество вложенных траекторий не будет закрашено цветом
S nostroke (none) Определяет, что текущее множество вложенных траекторий не будет заштриховано
T аngleellipseto (x y w h t0 t1) + Рисует сегмент эллипса. Эллипс определяется его центром (x, y), размером (w, h), начальным углом t0 и конечным углом t1
U angleellipse (x y w h t0 t1) + То же, что и команда «T», за исключением включенной moveto к стартовой точке
A arcto (x1 y1 x2 y2 x3 y3 x y) + (x1, y1) и (x2, y2) определяют обрамляющую рамку эллипса. Линия рисуется от текущей точки к начальному углу дуги, который определяется радиус-вектором точки (x3, y3), а затем против часовой стрелки к конечному углу, определенному точкой (x4, y4)
B arc (x1 y1 x2 y2 x3 y3 x y) + То же, что и команда «A», за исключением включенной moveto к стартовой точке
W clockwisearcto (x1 y1 x2 y2 x3 y3 x y) + То же, что и команда «A», за исключением того, что дуга рисуется по часовой стрелке
V clockwisearc (x1 y1 x2 y2 x3 y3 x y) + То же, что и команда «A», за исключением включенной moveto к стартовой точке и рисования дуги по часовой стрелке
X ellipticalquatrantx (x y) + Рисует четверть эллипса, чей начальный сегмент направлен по касательной к оси y, рисуется от текущей точки до (x, y)
Y ellipticalquadranty (x y) + Рисует четверть эллипса, чей начальный сегмент направлен по касательной к оси x, рисуется от текущей точки до (x, y)
Q quadraticcurveto (x1 y1 x y) + Рисует квадратичную кривую Безье от текущей точки к (x, y), используя (x1, y1) как контрольную точку. (x, y) становится новой текущей точкой в конце выполнения команды
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:enhanced-path">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Точки растяжения траектории[править]

Атрибуты draw:path-stretchpoint-x и draw:path-stretchpoint-y определяют точки растяжения фигуры.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:path-stretchpoint-x" a:defaultValue="0">
            <ref name="double"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:path-stretchpoint-y" a:defaultValue="0">
            <ref name="double"/>
        </attribute>
    </optional>
</define>
Текстовые области[править]

Атрибут draw:text-areas определяет список текстовых областей. Текстовые области используются для расположения и выравнивания текста. Если текстовая область не указана, то используется область самой фигуры. Если доступна вторая текстовая область, то она используется для вертикального текста.

Область состоит из четырех параметров:

первый параметр определяет левый край текстовой области;

второй параметр определяет верхний край текстовой области;

третий параметр определяет правый край текстовой области;

четвертый параметр определяет нижний край текстовой области.

Параметр может также иметь одно из расширений, приведенных ниже.

  • Символ «?» используется для отметки начала имени формулы. В этом случае в качестве значения параметра используется значение атрибута элемента draw:formula.
  • Если символ «$» предшествует целочисленному значению, значением является индексированный атрибут draw:modifiers. В этом случае значение соответствующего модификатора используется как значение параметра.

Пример —

атрибут draw:text-areas, определяющий две текстовых области, включающий модификатор и уравнение, может быть таким:

draw:text-areas="0 0 100 100 ?Formula1 $1 200 200"

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:text-areas">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Точки привязки[править]

Атрибут draw:glue-points определяет список определенных объектом точек привязки. В отличие от определяемых пользователем точек привязки, которые определяются во вложенном элементе <draw:glue-point>, определенные объектом точки привязки могут использовать уравнения и модификаторы:

первый параметр определяет горизонтальное положение точки привязки; второй параметр определяет вертикальное положение точки привязки.

Каждый параметр может быть числом с плавающей точкой, а также может иметь одно из расширений приведенных ниже.

  • Символ «?» используется для отметки начала имени формулы. В этом случае в качестве значения параметра используется значение атрибута элемента draw:formula.
  • Если символ «$» предшествует целочисленному значению, значением является индексированный атрибут draw:modifiers. В этом случае значение соответствующего модификатора используется как значение параметра.

Пример —

атрибут draw:glue-points, определяющий две точки привязки, включающий модификатор и уравнение, может быть таким:

draw:glue-points="0 ?Formula1 100 $1"

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:glue-points">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Тип точки привязки[править]

Атрибут draw:glue-point-type определяет тип точки привязки. Если атрибут draw:glue-points также доступен, то данный атрибут игнорируется:

  • none — точки привязки специального объекта отсутствуют;
  • segments — соединительный элемент будет соединен с каждой точкой атрибута draw:enhanced-path;
  • rectangle — середина каждой стороны обрамляющего фигуру прямоугольника определяет точку привязки специального объекта.
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:glue-point-type" a:defaultValue="none">
            <choice>
                <value>none</value>
                <value>segments</value>
                <value>rectangle</value>
            </choice>
        </attribute>
    </optional>
</define>
Направление выхода точки привязки[править]

Атрибут draw:glue-point-leaving-directions состоит из списка значений углов в градах, разделенных запятыми. Значение угла может быть числом с плавающей точкой. Позиция в списке имеет то же значение, что и указанная точка привязки атрибута draw:glue-points.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:glue-point-leaving-directions"/>
    </optional>
</define>

9.5.4 Расширенная геометрия: атрибуты траектории текста[править]

Траектория текста[править]

Атрибут draw:text-path определяет, будет ли использоваться траектория текста для отображения текста.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:text-path" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Режим траектории текста[править]

Атрибут draw:text-path-mode определяет, как будет выводиться текст:

  • normal — текст выводится вдоль траектории без масштабирования;
  • path — текст согласовывается с траекторией;
  • shape — текст согласовывается с обрамляющей рамкой фигуры.
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:text-path-mode" a:defaultValue="normal">
            <choice>
                <value>normal</value>
                <value>path</value>
                <value>shape</value>
            </choice>
        </attribute>
    </optional>
</define>
Масштабирование траектории текста[править]

Атрибут draw:text-path-scale определяет масштабирование траектории текста.

  • path — масштабирование текста определяется длиной траектории из атрибута draw:enhanced-path;
  • shape — масштабирование текста определяется шириной фигуры.
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:text-path-scale" a:defaultValue="path">
            <choice>
                <value>path</value>
                <value>shape</value>
            </choice>
        </attribute>
    </optional>
</define>
Одинаковая высота символов траектории текста[править]

Атрибут draw:text-path-same-letter-heights определяет, будут ли все символы специальной фигуры иметь одинаковую высоту.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:text-path-same-letter-heights"
                   a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Модификаторы[править]

Атрибут draw:modifiers содержит список значений модификатора. Модификатор может принимать дробное значение. В большинстве случаев атрибут draw:modifiers используется атрибутом draw:handle-position для сохранения позиции метки-манипулятора.

<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:modifiers">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

9.5.5 Расширенная геометрия: уравнение[править]

Уравнение[править]

Элемент <draw:equation> может быть использован в метках-манипуляторах, текстовых областях, точках привязки и расширенных траекториях для вычисления значений, которые зависят от значений модификатора. Поскольку значения модификатора могут интерактивно изменяться, это удобный способ интегрирования динамических значений в геометрию фигуры.

<define name="draw-equation">
    <element name="draw:equation">
        <ref name="draw-equation-attlist"/>
        <empty/>
    </element>
</define>
Имя[править]

Атрибут draw:name определяет имя уравнения. В имени не допускаются пробелы.

<define name="draw-equation-attlist" combine="interleave">
    <optional>
        <attribute name="draw:name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Формула[править]

Атрибут draw:formula определяет уравнение, по которому рассчитывается значение. Формула может использовать другие формулы или значения модификаторов в функциях и/или ссылках модификаторов.

number_digit = '0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9'

number = number number_digit | number_digit

identifier = 'pi'|'left'|'top'|'right'|'bottom'|'xstretch'|'ystretch'|
             'hasstroke'|'hasfill'|'width'|'height'|'logwidth'|'logheight'

unary_function = 'abs'|'sqrt'|'sin'|'cos'|'tan'|'atan'|'atan2'
binary_function = 'min'|'max'
ternary_function = 'if'

function_reference = '?' 'a-z,A-Z,0-9' ' '
modifier_reference = '$' '0-9' ' '

basic_expression =
    number |
    identifier |
    function_reference |
    unary_function '(' additive_expression ')' |
    binary_function '(' additive_expression ',' additive_expression ')' |
    ternary_function '(' additive_expression ',' additive_expression ',
                       ' additive_expression ')' | '(' additive_expression ')'

unary_expression = '-' basic_expression

multiplicative_expression =
                        basic_expression |
                        multiplicative_expression '*' basic_expression |
                        multiplicative_expression '/' basic_expression

additive_expression  =
                     multiplicative_expression |
                     additive_expression '+' multiplicative_expression |
                     additive_expression '-' multiplicative_expression
Иденти-
фикатор
Описание
left Используется значение левой границы атрибута svg:viewBox
top Используется значение верхней границы атрибута svg:viewBox
right Используется значение правой границы атрибута svg:viewBox
bottom Используется значение нижней границы атрибута svg:viewBox
xstretch Используется значение draw:path-stretchpoint-x
ystretch Используется значение draw:path-stretchpoint-y
hasstroke Если фигура имеет стиль линий, используется значение 1
hasfill Если фигура имеет стиль заполнения, используется значение 1
width Используется значение ширины svg:viewBox
height Используется значение высоты svg:viewBox
logwidth Используется значение ширины svg:viewBox в 1/100 долях мм
logheight Используется значение высоты svg:viewBox в 1/100 долях мм

Пример — использование атрибута draw:formula:

draw:formula="width+10-$0". Если значение первого модификатора равно 100 и ширина svg:viewBox равна 10000, то результат приведенной формулы будет 10000 + 10 - 100 = 9910.

<define name="draw-equation-attlist" combine="interleave">
    <optional>
        <attribute name="draw:formula">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

9.5.6 Расширенная геометрия: атрибуты меток-манипуляторов[править]

Метка-манипулятор[править]

Элемент <draw:handle> определяет одиночную метку-манипулятор.

<define name="draw-handle">
    <element name="draw:handle">
        <ref name="draw-handle-attlist"/>
        <empty/>
    </element>
</define>
Вертикальное отражение метки-манипулятора[править]

Атрибут draw:handle-mirror-vertical определяет, является ли положение метки-манипулятора зеркально отраженным по оси x.

<define name="draw-handle-attlist" combine="interleave">
    <optional>
        <attribute name="draw:handle-mirror-vertical" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Горизонтальное отражение метки-манипулятора[править]

Атрибут draw:handle-mirror-horizontal определяет, является ли положение метки-манипулятора зеркально отраженным по оси y.

<define name="draw-handle-attlist" combine="interleave">
    <optional>
        <attribute name="draw:handle-mirror-horizontal" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Переключатель метки-манипулятора[править]

Атрибут draw:handle-switched определяет, будут ли изменяться направления метки-манипулятора, если высота фигуры больше, чем ее ширина.

<define name="draw-handle-attlist" combine="interleave">
    <optional>
        <attribute name="draw:handle-switched" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Положение метки-манипулятора[править]

Атрибут draw:handle-position определяет положение метки-манипулятора и состоит из двух параметров.

Каждый параметр может быть числом с плавающей точкой, или он может иметь одно из следующих расширений.

  • Символ «?» используется для отметки начала имени формулы. В этом случае в качестве значения параметра используется значение атрибута элемента draw:formula.
  • Если символ «$» предшествует целочисленному значению, значением является индексированный атрибут draw:modifiers. В этом случае значение соответствующего модификатора используется как значение параметра.
  • В зависимости от номера, параметр также может иметь значение одной из нижеперечисленных констант:
Константа Описание
left Используется значение атрибута draw:coordinate-origin-x
top Используется значение атрибута draw:coordinate-origin-y
right Используется значение атрибута draw:coordinate-origin-x + значение атрибута draw:coordinate-width
bottom Используется значение атрибута draw:coordinate-origin-y + значение атрибута draw:coordinate-height
xstretch Используется значение атрибута draw:path-stretchpoint-x
ystretch Используется значение атрибута draw:path-stretchpoint-y
hasstroke Если фигура имеет стиль линий, используется значение 1
hasfill Если фигура имеет стиль заполнения цветом, используется значение 1.
width Используется значение ширины svg:viewBox
height Используется значение высоты svg:viewBox
logwidth Используется значение ширины svg:viewBox в 1/100 долях мм
logheight Используется значение высоты svg:viewBox в 1/100 долях мм

Атрибут draw:handle-position определяет положение метки-манипулятора. Если атрибут draw:handle-polar не установлен, то первый параметр атрибута draw:handle-position определяет горизонтальное положение метки-манипулятора, вертикальное положение метки-манипулятора описывается вторым параметром. Если установлен атрибут draw:handle-polar, то метка-указатель является полярной меткой и первый параметр атрибута draw:handle-position определяет угол в градах, радиус метки-указателя определяется вторым параметром.

Пример атрибута draw:handle-position следующий:

draw:handle-position="left $5"

<define name="draw-handle-attlist" combine="interleave">
    <attribute name="draw:handle-position">
        <ref name="string"/>
    </attribute>
</define>
Минимальный диапазон перемещения по оси X для манипулятора[править]

Атрибут draw:handle-range-x-minimum определяет минимум горизонтального диапазона, внутри которого может перемещаться меткаманипулятор. Синтаксис для атрибута такой же, как и для атрибута draw:handle-position, за исключением того, что используется только первый параметр.

Пример объявления атрибута минимального значения из первой формулы:

draw:handle-range-x-minimum="?Formula1"

<define name="draw-handle-attlist" combine="interleave">
    <optional>
        <attribute name="draw:handle-range-x-minimum">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Максимальный диапазон перемещения по оси X для манипулятора[править]

Атрибут draw:handle-range-x-maximum определяет максимум горизонтального диапазона, внутри которого может перемещаться метка-манипулятор. Синтаксис атрибута такой же, как и для атрибута draw:handle-range-x-minimum.

<define name="draw-handle-attlist" combine="interleave">
    <optional>
        <attribute name="draw:handle-range-x-maximum">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Минимальный диапазон перемещения по оси Y для манипулятора[править]

Атрибут draw:handle-range-y-minimum определяет минимум вертикального диапазона, внутри которого может перемещаться метка-манипулятор. Синтаксис атрибута такой же, как и для атрибута draw:handle-range-x-minimum.

<define name="draw-handle-attlist" combine="interleave">
    <optional>
        <attribute name="draw:handle-range-y-minimum">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Максимальный диапазон перемещения по оси Y для манипулятора[править]

Атрибут draw:handle-range-y-maximum определяет максимум вертикального диапазона, внутри которого может перемещаться метка-манипулятор. Синтаксис атрибута такой же, как и для атрибута draw:handle-range-x-minimum.

<define name="draw-handle-attlist" combine="interleave">
    <optional>
        <attribute name="draw:handle-range-y-maximum">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Полярная метка-манипулятор[править]

Атрибут draw:handle-polar определяет, является ли метка-манипулятор полярной меткой-манипулятором. Синтаксис для данного атрибута такой же, как и для атрибута draw:handle-position. Первый параметр определяет горизонтальное положение центра, вертикальное положение центра определяется вторым параметром. Если атрибут установлен, атрибуты draw:handle-range-x и draw:handle-range-y игнорируются, вместо них могут быть использованы атрибуты draw:handle-radius-range-minumum и draw:handle-radius-range-maximum.

<define name="draw-handle-attlist" combine="interleave">
    <optional>
        <attribute name="draw:handle-polar">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Минимальный диапазон радиуса метки-манипулятора[править]

Если установлен атрибут draw:handle-radius-range-minimum, то он определяет минимум диапазона радиуса, который может быть использован для полярной метки-манипулятора. Синтаксис атрибута такой же, как и для атрибута draw:handle-range-x-minimum.

<define name="draw-handle-attlist" combine="interleave">
    <optional>
        <attribute name="draw:handle-radius-range-minimum">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Максимальный диапазон радиуса метки-манипулятора[править]

Если установлен атрибут draw:handle-radius-range-maximum, он определяет максимум диапазона радиуса, который может быть использован для полярной метки-манипулятора. Синтаксис атрибута такой же, как и для атрибута draw:handle-range-x-minimum.

<define name="draw-handle-attlist" combine="interleave">
    <optional>
        <attribute name="draw:handle-radius-range-maximum">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

9.6 Фигуры презентации[править]

Фигуры презентации — это специальные фигуры текстовых блоков, изображений, объектов или уменьшенных изображений, содержащиеся в презентации. Фигуры презентации используют стили со значением семейства стилей presentation, в отличие от векторных фигур, которые используют стили со значением семейства стилей graphic. Фигуры презентации могут быть пустыми, действуя как поля для заполнения. Если разметка графической страницы презентации (см. раздел 14.15) изменяется, все фигуры презентации автоматически адаптируются.

Стандартные векторные фигуры также могут быть использованы в презентации. Атрибут presentation:class отличает фигуры презентаций от векторных фигур. В отличие от фигур презентации векторные фигуры не адаптируются, если разметка страницы изменяется.

9.6.1 Общие атрибуты фигур презентации[править]

Атрибуты, описанные в данном разделе, являются общими для всех фигур презентации.

Стиль[править]

Фигуры презентации могут иметь связанные с ними стили из семейства стилей presentation. Фигуру презентации можно отличить от векторной фигуры проверкой наличия атрибута presentation:style-name. Векторные фигуры используют атрибут draw:style-name со стилем из семейства graphic, в то время как фигуры презентации используют атрибут presentation:style-name со стилем из семейства presentation. Это имя ссылается на элемент <style:style> с семейством presentation. Свойства форматирования этого стиля, а также его необязательных родительских стилей, используются для форматирования данной фигуры (см. также раздел 9.2.15).

Класс[править]

Атрибут presentation:class классифицирует фигуры презентации по признакам их использования на графической странице (например, заголовок или структура). Существуют следующие классы:

  • title — заглавия являются стандартными текстовыми фигурами;
  • outline — структуры являются стандартными текстовыми фигурами;
  • subtitle — подзаголовки являются стандартными текстовыми фигурами;
  • text — тексты презентации являются стандартными текстовыми фигурами;
  • graphic — графические объекты являются стандартными графическими фигурами;
  • object — объекты презентации являются стандартными фигурами объекта;
  • chart — диаграммы являются стандартными фигурами объекта;
  • table — таблицы презентации являются стандартными фигурами объекта;
  • orgchart — организационные диаграммы являются стандартными фигурами объекта;
  • page — страницы используются страницами заметок;
  • notes — заметки презентации используются страницами заметок;
  • handout — слайды тезисов являются полями для заполнения для графических страниц в странице мастер-слайд тезисов.

Следующие четыре класса могут быть использованы только для векторных фигур, содержащихся на мастер-странице. В зависимости от установок страницы (см. раздел 15.36), они отображаются автоматически на страницах рисования, которые используют мастер-страницу:

  • header — фигура используется как верхний колонтитул, фигуры верхнего колонтитула являются стандартными текстовыми фигурами;
  • footer — фигура используется как нижний колонтитул, фигуры нижнего колонтитула являются стандартными текстовыми фигурами;
  • date-time — фигура используется как фигура времени и/или даты, Фигуры времени и даты являются стандартными текстовыми фигурами;
  • page-number — фигуры используются как фигуры номеров страниц, фигуры номеров страниц являются стандартными текстовыми фигурами.
<define name="presentation-shape-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:class">
            <ref name="presentation-classes"/>
        </attribute>
    </optional>
</define>
<define name="presentation-classes">
    <choice>
        <value>title</value>
        <value>outline</value>
        <value>subtitle</value>
        <value>text</value>
        <value>graphic</value>
        <value>object</value>
        <value>chart</value>
        <value>table</value>
        <value>orgchart</value>
        <value>page</value>
        <value>notes</value>
        <value>handout</value>
        <value>header</value>
        <value>footer</value>
        <value>date-time</value>
        <value>page-number</value>
    </choice>
</define>
Поле для заполнения[править]

Атрибут presentation:placeholder определяет, является ли фигура полем для заполнения или объектом презентации с фактическим содержимым.

<define name="presentation-shape-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:placeholder">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Пользовательское преобразование[править]

Атрибут presentation:user-transformed определяет, устанавливается ли пользователем положение и размер фигуры, или же они устанавливаются в соответствии с фигурой презентации на мастер-странице.

<define name="presentation-shape-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:user-transformed">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

9.7 Анимация презентаций[править]

В документе презентации векторные фигуры могут быть анимированы. Каждая страница презентации может иметь необязательный элемент <presentation:animations>, который служит контейнером для эффектов анимации. Анимация осуществляется в момент отображения страницы при показе презентации.

Эта спецификация допускает множество эффектов для одной и той же фигуры внутри страницы. Приложения могут иметь ограничения относительно числа и комбинации эффектов, применимых к фигуре, например, поддерживать только один элемент показа и один элемент затухания для фигуры с дополнительным показом и затуханием текста, одним эффектом затемнения и одним звуковым эффектом.

<define name="presentation-animations">
    <element name="presentation:animations">
        <zeroOrMore>
            <choice>
                <ref name="presentation-animation-elements"/>
                <ref name="presentation-animation-group"/>
            </choice>
        </zeroOrMore>
    </element>
</define>
<define name="presentation-animation-elements">
    <choice>
        <ref name="presentation-show-shape"/>
        <ref name="presentation-show-text"/>
        <ref name="presentation-hide-shape"/>
        <ref name="presentation-hide-text"/>
        <ref name="presentation-dim"/>
        <ref name="presentation-play"/>
    </choice>
</define>

9.7.1 Звук[править]

Элемент <presentation:sound> может содержаться во всех элементах анимации презентации, которые поддерживают звук. Звуковой файл, указанный атрибутами XLink, воспроизводится во время выполнения эффекта.

<define name="presentation-sound">
    <element name="presentation:sound">
        <ref name="presentation-sound-attlist"/>
        <attribute name="xlink:href">
            <ref name="anyURI"/>
        </attribute>
        <optional>
            <attribute name="xlink:type" a:defaultValue="simple">
                <choice>
                    <value>simple</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:actuate" a:defaultValue="onRequest">
                <choice>
                    <value>onRequest</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:show">
                <choice>
                    <value>new</value>
                    <value>replace</value>
                </choice>
            </attribute>
        </optional>
        <empty/>
    </element>
</define>

С элементом <presentation:sound> может быть связан следующий атрибут:

  • воспроизводить полностью.
Воспроизводить полностью[править]

Если значением атрибута presentation:play-full является true, следующий эффект начнется после завершения воспроизведения звука. Если значение данного атрибута false, следующий эффект начнется сразу после завершения текущего эффекта.

<define name="presentation-sound-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:play-full">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

9.7.2 Показ фигуры[править]

Элемент <presentation:show-shape> делает фигуру видимой. Если для фигуры указан элемент<presentation:show-shape>, эта фигура автоматически становится невидимой до начала выполнения эффекта.

<define name="presentation-show-shape">
    <element name="presentation:show-shape">
        <ref name="common-presentation-effect-attlist"/>
        <optional>
            <ref name="presentation-sound"/>
        </optional>
    </element>
</define>

С элементом <presentation:show-shape> могут быть связаны следующие атрибуты:

  • фигура;
  • эффект;
  • направление;
  • скорость;
  • задержка;
  • начальный масштаб;
  • траектория.
Фигура[править]

Атрибут draw:shape-id определяет фигуру для применения эффекта указанием ее идентификатора.

<define name="common-presentation-effect-attlist" combine="interleave">
    <attribute name="draw:shape-id">
        <ref name="IDREF"/>
    </attribute>
</define>
Эффект[править]

Атрибут presentation:effect определяет тип эффекта.

  • none — эффект не используется;
  • fade — фигура постепенно изменяется от ее видимого или невидимого состояния до невидимого или видимого состояния соответственно;
  • move — фигура перемещается из конечного положения или в ее конечное положение;
  • stripes — фигура плавно проявляется или исчезает в процессе рисования или стирания горизонтальных или вертикальных полос, изменяющих ее размер;
  • open — фигура рисуется или убирается линия за линией либо в горизонтальном, либо в вертикальном направлении, начиная от центра фигуры;
  • close — фигура рисуется или убирается линия за линией либо в горизонтальном, либо в вертикальном направлении, начиная с края фигуры;
  • dissolve — фигура плавно проявляется или исчезает в процессе рисования или удаления маленьких блоков в произвольном порядке;
  • wavyline — фигура плавно проявляется или исчезает в процессе рисования или удаления маленьких блоков «змейкой»;
  • random — эффект выбирается случайным образом для плавного появления или исчезновения фигуры;
  • lines — фигура рисуется или убирается линия за линией либо в горизонтальном, либо в вертикальном направлении, в произвольном порядке;
  • laser — этот эффект применим только для текстовых фигур, символы текста двигаются один за другим от верхнего края экрана к их конечному положению;
  • appear — фигура постепенно проявляется в процессе изменения своего состояния от невидимого к видимому;
  • hide — фигура постепенно исчезает в процессе изменения своего состояния от видимого к невидимому;
  • move-shor — как и эффект move, но перемещение фигуры обрезается ограничивающим прямоугольником во время постепенного изменения;
  • checkerboard — фигура плавно проявляется или исчезает в процессе рисования или удаления шахматной доски, блоки которой со временем увеличиваются в размерах;
  • rotate — фигура вертикально или горизонтально вращается небольшой промежуток времени;
  • stretch — фигура плавно проявляется или исчезает в процессе изменения ее размера.
<define name="common-presentation-effect-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:effect" a:defaultValue="none">
            <ref name="presentationEffects"/>
        </attribute>
    </optional>
</define>
<define name="presentationEffects">
    <choice>
        <value>none</value>
        <value>fade</value>
        <value>move</value>
        <value>stripes</value>
        <value>open</value>
        <value>close</value>
        <value>dissolve</value>
        <value>wavyline</value>
        <value>random</value>
        <value>lines</value>
        <value>laser</value>
        <value>appear</value>
        <value>hide</value>
        <value>move-short</value>
        <value>checkerboard</value>
        <value>rotate</value>
        <value>stretch</value>
    </choice>
</define>
Направление[править]

Атрибут presentation:direction определяет направление эффекта. Он нужен только для некоторых эффектов.

<define name="common-presentation-effect-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:direction" a:defaultValue="none">
            <ref name="presentationEffectDirections"/>
        </attribute>
    </optional>
</define>
<define name="presentationEffectDirections">
    <choice>
        <value>none</value>
        <value>from-left</value>
        <value>from-top</value>
        <value>from-right</value>
        <value>from-bottom</value>
        <value>from-center</value>
        <value>from-upper-left</value>
        <value>from-upper-right</value>
        <value>from-lower-left</value>
        <value>from-lower-right</value>
        <value>to-left</value>
        <value>to-top</value>
        <value>to-right</value>
        <value>to-bottom</value>
        <value>to-upper-left</value>
        <value>to-upper-right</value>
        <value>to-lower-right</value>
        <value>to-lower-left</value>
        <value>path</value>
        <value>spiral-inward-left</value>
        <value>spiral-inward-right</value>
        <value>spiral-outward-left</value>
        <value>spiral-outward-right</value>
        <value>vertical</value>
        <value>horizontal</value>
        <value>to-center</value>
        <value>clockwise</value>
        <value>counter-clockwise</value>
    </choice>
</define>
Скорость[править]

Атрибут presentation:speed определяет скорость эффекта.

<define name="common-presentation-effect-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:speed" a:defaultValue="medium">
            <ref name="presentationSpeeds"/>
        </attribute>
    </optional>
</define>
<define name="presentationSpeeds">
    <choice>
        <value>slow</value>
        <value>medium</value>
        <value>fast</value>
    </choice>
</define>
Задержка[править]

Атрибут presentation:delay определяет задержку перед началом эффекта презентации после завершения предыдущего эффекта.

<define name="common-presentation-effect-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:delay">
            <ref name="duration"/>
        </attribute>
    </optional>
</define>
Начальный масштаб[править]

Некоторые эффекты изменяют масштаб фигуры во время своего выполнения. Атрибут presentation:start-scale определяет начальный размер фигуры в процентах от ее оригинального размера.

<define name="common-presentation-effect-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:start-scale" a:defaultValue="100%">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
Траектория[править]

Атрибут presentation:path-id применяется для эффекта move. Атрибут определяет идентификатор фигуры многоугольника. Эффект движется вдоль линий указанного многоугольника. Указанный многоугольник является невидимым во время показа презентации.

<define name="common-presentation-effect-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:path-id"/>
    </optional>
</define>

9.7.3 Показ текста[править]

Элемент <presentation:show-text> делает текст фигуры видимым. Если элемент <show-text> указан для фигуры, текст фигуры автоматически становится невидимым до начала выполнения эффекта.

<define name="presentation-show-text">
    <element name="presentation:show-text">
        <ref name="common-presentation-effect-attlist"/>
        <optional>
            <ref name="presentation-sound"/>
        </optional>
    </element>
</define>

C элементом <presentation:show-text> могут быть связаны следующие атрибуты:

  • фигура, эффект, направление, скорость, начальный масштаб, траектория (см. раздел 9.7.2).

9.7.4 Скрытие фигуры[править]

Элемент <presentation:hide-shape> делает фигуру невидимой.

<define name="presentation-hide-shape">
    <element name="presentation:hide-shape">
        <ref name="common-presentation-effect-attlist"/>
        <optional>
            <ref name="presentation-sound"/>
        </optional>
    </element>
</define>

С элементом <presentation:hide-shape> могут быть связаны следующие атрибуты:

  • фигура, эффект, направление, скорость, начальный масштаб, траектория (см. раздел 9.7.2).

9.7.5 Скрытие текста[править]

Элемент <presentation:hide-text> делает текст фигуры невидимым.

<define name="presentation-hide-text">
    <element name="presentation:hide-text">
        <ref name="common-presentation-effect-attlist"/>
        <optional>
            <ref name="presentation-sound"/>
        </optional>
    </element>
</define>

С элементом <presentation:hide-text> могут быть связаны следующие атрибуты:

  • фигура, эффект, направление, скорость, начальный масштаб, траектория (см. раздел 9.7.2).

9.7.6 Затемнение[править]

Элемент <presentation:dim> закрашивает фигуру одним цветом.

<define name="presentation-dim">
    <element name="presentation:dim">
        <ref name="presentation-dim-attlist"/>
        <optional>
            <ref name="presentation-sound"/>
        </optional>
    </element>
</define>

С элементом <presentation:dim> могут быть связаны следующие атрибуты:

<define name="presentation-dim-attlist" combine="interleave">
    <attribute name="draw:shape-id">
        <ref name="IDREF"/>
    </attribute>
</define>
Цвет[править]

Атрибут draw:color определяет цвет заполнения фигуры, если она затемнена.

<define name="presentation-dim-attlist" combine="interleave">
    <attribute name="draw:color">
        <ref name="color"/>
    </attribute>
</define>

9.7.7 Воспроизведение[править]

Элемент <presentation:play> начинает анимацию фигуры, поддерживающей анимацию.

<define name="presentation-play">
    <element name="presentation:play">
        <ref name="presentation-play-attlist"/>
        <empty/>
    </element>
</define>

С элементом <presentation:play> могут быть связаны следующие атрибуты:

<define name="presentation-play-attlist" combine="interleave">
    <attribute name="draw:shape-id">
        <ref name="IDREF"/>
    </attribute>
    <optional>
        <attribute name="presentation:speed" a:defaultValue="medium">
            <ref name="presentationSpeeds"/>
        </attribute>
    </optional>
</define>

9.7.8 Группы эффектов[править]

Элемент <presentation:animation-group> позволяет определить начало нескольких эффектов в один момент времени.

<define name="presentation-animation-group">
    <element name="presentation:animation-group">
        <zeroOrMore>
            <ref name="presentation-animation-elements"/>
        </zeroOrMore>
    </element>
</define>

9.8 Анимация SMIL-презентаций[править]

В этом разделе описана анимация фигур для документов презентаций, основанная на [SMIL20]. Этот тип анимации может быть использован вместо того, который определяется элементом <presentation:animations>, если требуется достичь одно из нижеперечисленного:

  • множественная анимация для одной фигуры;
  • комбинация анимации, начинающейся по действию пользователя и стартующей автоматически на странице;
  • множество эффектов анимации, происходящих в одно и то же время;
  • дополнительные эффекты, «программируемые» в XML путем совмещения основных элементов анимации;
  • преобразования документа к SVG, включающему [SMIL20].

9.8.1 Рекомендуемое применение SMIL[править]

В следующих разделах описано использование элементов SMIL-анимации, позволяющих офисному приложению показывать пользователю анимированные элементы в виде простого и легкого пользовательского интерфейса. Этот пользовательский интерфейс может содержать одну основную последовательность эффектов и, в дополнение к ней, множество последовательностей эффектов, которые начинаются как взаимодействие с графическими фигурами. Эффект — это комбинация одного или более элементов анимации одиночной фигуры и/или абзацев этой фигуры.

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

Анимация слайдов[править]

Каждый элемент <draw:page> может опционально иметь элемент <anim:par>, который задает анимацию страницы во время показа слайдов. Элемент <anim:par> должен содержать один элемент <anim:seq>, который является основной последовательностью для эффектов фигуры, и ноль или больше элементов <anim:seq> для задания интерактивных последовательностей фигур, содержащих взаимодействующую анимацию. Элементы анимации запускаются после того, как слайд осуществит свой начальный переход.

Основная последовательность[править]

Основная последовательность — это элемент <anim:seq>, содержащий эффекты, которые должны начаться после того, как слайд выполнил свой начальный переход. Поскольку это последовательный контейнер, его дочерние узлы выполняются один за другим. Если атрибут дочернего узла smil:begin имеет значение indefinite, то выполнение останавливается до тех пор, пока пользователь не продвинет показ слайдов мышью или клавиатурой.

Первый уровень дочерних узлов в главной последовательности должен быть элементами <anim:par>, которые группируют элементы анимации, начинающиеся с одного и того же действия пользователя. Второй уровень дочерних элементов должен быть элементами <anim:par>, которые группируют элементы анимации начинающиеся в одно и то же время. Третий уровень дочерних узлов должен быть элементами <anim:par>, которые группируют элементы для единого эффекта.

Пример —

Следующий пример иллюстрирует основную последовательность с эффектами A, B, C и D. Эффект A начинается по взаимодействию с пользователем, эффект B стартует одновременно с A. Эффект C стартует через 4 секунды после эффектов A и B. Эффект D стартует при следующем взаимодействии с пользователем:

<amin:par> <!-- timing root-->
    <anim:seq> <!-- main sequence-->
        <anim:par smil:begin="indefinite">
            <!-- first user interaction -->
            <anim:par smil:begin="0s" smil:dur="4s">
                <!-- first group of effects to execute -->
                <anim:par> <!-- effect a -->
                    <!-- nodes for effect a-->
                </anim:par>
                <anim:par> <!-- effect b -->
                    <!-- nodes for effect b-->
                </anim:par>
            </anim:par>
            <anim:par smil:begin="4s">
                <!-- second group of effects to execute -->
                <anim:par> <!-- effect c -->
                    <!-- nodes for effect c-->
                </anim:par>
            </anim:par>
        </anim:par>
        <anim:par>
            <!-- second user interaction-->
            <anim:par smil:begin="indefinite">
                <!-- first group of effects to execute -->
                <anim:par> <!-- effect d -->
                    <!--- nodes for effect d-->
                </anim:par>
            </anim:par>
        </anim:par>
    </anim:seq>
</anim:par>
Интерактивная последовательность[править]

Интерактивная последовательность — это элемент <anim:seq>, который должен иметь такую же структуру как и основная последовательность. Единственным отличием является то, что элемент <anim:par> на первом уровне значением атрибута smil:begin имеет [shape-id].click, где [shape-id] идентифицирует графические фигуры по значению их атрибута draw:id. Эти элементы анимации включаются, когда пользователь взаимодействует с элементом, определенным [shape-id].

9.8.2 Значения атрибутов SMIL-анимации, зависящие от документа[править]

В этом разделе описаны значения атрибутов, зависящих от типа документа, описанных в разделе 13, если они используются внутри документа презентации.

Целевой элемент повторения[править]

Для документов презентаций атрибут smil:targetElement элемента <anim:iterate> (см. раздел 13.4.4) может ссылаться на элемент графической фигуры или абзаца. Если атрибуту anim:sub-item элемента <anim:iterate> установлено значение whole, повтор включает в себя и фон фигуры, и ее текст. Если значение атрибута anim:sub-item установлено как text, повторяется только текст фигуры.

Тип повторения[править]

Для документов презентаций атрибут anim:iterate-type элемента <anim:iterate> (см. раздел 13.4.4) может принимать следующие значения:

  • by-paragraph — целевая фигура повторяется по абзацам;
  • by-word — целевая фигура или абзац повторяются по словам;
  • by-letter — целевая фигура или абзац повторяются по символам.
Целевой элемент[править]

Для документов презентаций атрибут smil:targetElement, описанный в разделе 13.3.1, может ссылаться на фигуры по значению их атрибута draw:id и абзацы по значению их атрибута text:id.

Целевой атрибут[править]

Для документов презентаций атрибут smil:attributeName, описанный в разделе 13.3.1, может принимать следующие значения:

  • x — анимируется x-положение элемента, значения даются в размерах экрана, где 0 означает левый край, 1 означает правый край;
  • y — анимируется y-положение элемента, значения даются в размерах экрана, где 0 означает верхний край, 1 означает нижний край;
  • width — анимируется ширина элемента, значения даются в размерах экрана, где 0 означает отсутствие ширины, 1 означает ширину экрана;
  • height — анимируется высота элемента, значения даются в размерах экрана, где 0 означает отсутствие высоты, 1 означает высоту экрана;
  • color — анимируется цвет элемента, анимируются одновременно цвета заливки, линий и символов, значения могут быть RGB или HSL;
  • rotate — анимируется поворот элемента, анимируются одновременно фигура и текстовая анимация;
  • skewX — анимируется горизонтальный наклон элемента;
  • fillColor — анимируется цвет заливки элемента;
  • fillStyle — анимируется стиль заливки элемента;
  • lineColor — анимируется цвет линий элемента;
  • lineStyle — анимируется стиль линий элемента;
  • charColor — анимируется цвет символов элемента;
  • charWeight — анимируется ширина символов текста элемента;
  • charUnderline — анимируется подчеркивание текста элемента;
  • charFontName — анимируется шрифт текста элемента;
  • charHeight — анимируется высота текста элемента;
  • charPosture — анимируется положение текста элемента;
  • visibility — анимируется видимость элемента;
  • opacity — анимируется непрозрачность элемента.
Подпункты целевого элемента[править]

Для документов презентаций атрибут anim:sub-item, описанный в разделе 13.3.1, может принимать следующие значения:

  • whole — анимируется и фигура, и ее текст;
  • background — анимируется только фон фигуры, но не ее текст;
  • text — анимируется только текст.
Формула[править]

Для документов презентаций атрибут anim:formula, описанный в разделе 13.3.2, может содержать следующие дополнительные идентификаторы:

  • e, — эйлерова константа;
  • x — левая вершина анимированного элемента в размерах экрана, где 0 означает левый край экрана, 1 означает правый край экрана;
  • y — верхняя вершина анимированного элемента в размерах экрана, где 0 означает верхний край экрана, 1 означает нижний край экрана;
  • width — ширина анимированного элемента в размерах экрана, где 0 означает отсутствие ширины, 1 означает ширину экрана;
  • height