Работа с примечаниями
В этом разделе рассматривается класс Open XML SDK для Office Comment и его связь со схемой PresentationML формата файла Open XML. Дополнительные сведения об общей структуре частей и элементов, составляющих документ PresentationML см. в статье Структура документа PresentationML.
Комментарии в PresentationML
Спецификация ISO/IEC 29500 описывает раздел Комментарии платформы Open XML PresentationML следующим образом:
Комментарий — это текст, присоединяемый к слайду и позволяющий читателям отправить свои отзывы автору презентации. Каждый комментарий содержит неформатированную строку текста и информацию о ее авторе и присоединяется в определенном расположении на слайде. Комментарии могут отображаться при изменении презентации, но скрываются при демонстрации. Используемое для просмотра приложение определяет необходимость отображения комментариев и определяет их внешний вид.
Спецификация ISO/IEC 29500 описывает элемент Open XML PresentationML <cm/>
, используемый для представления комментариев в документе PresentationML следующим образом:
Этот элемент определяет один комментарий, присоединенный к слайду. Он содержит текст комментария, его положение на слайде, а также атрибуты, относящиеся к автору и дате комментария.
Пример:
<p:cm authorId="0" dt="2006-08-28T17:26:44.129" idx="1">
<p:pos x="10" y="10"/>
<p:text\>Add diagram to clarify.</p:text>
</p:cm>
В следующей таблице перечислены дочерние элементы элемента, используемого <cm/>
при работе с комментариями, и соответствующие им классы пакета SDK Open XML.
Элемент PresentationML | Класс пакета SDK Open XML |
---|---|
<extLst/> |
ExtensionListWithModification |
<pos/> |
Position |
<text/> |
Text |
В следующей таблице из спецификации ISO/IEC 29500 (Возможно, на английском языке) представлено описание атрибутов элемента <cm/>
.
Атрибуты | Описание |
---|---|
authorId | Этот атрибут указывает автора комментария. Он ссылается на идентификатор автора в списке авторов комментариев для документа. Возможные значения для этого атрибута определяются типом данных схемы unsignedInt XML W3C. |
dt | Этот атрибут определяет дату и время последнего изменения этого комментария. Возможные значения для этого атрибута определяются типом данных схемы datetime XML W3C. |
idx | Этот атрибут определяет уникальный идентификатор комментария в списке всех комментариев этого автора в документе. Первый комментарий автора в документе имеет индекс 1. Примечание. Так как индекс уникален только для автора комментариев, документ может содержать несколько комментариев с одинаковым индексом, созданным разными авторами. Возможные значения для данного атрибута определены в простом типе ST_Index (§19.7.3). |
Класс комментариев пакета SDK Open XML
Класс пакета SDK Comment
OXML представляет элемент, определенный <cm/>
в схеме формата файлов Open XML для документов PresentationML. Используйте класс для Comment
управления отдельными <cm/>
элементами в документе PresentationML.
Классы, представляющие дочерние <cm/>
элементы элемента и поэтому обычно связанные с классом Comment
, показаны в следующем списке.
Класс ExtensionListWithModification
Класс ExtensionListWithModification
соответствует элементу <extLst/>
. Этот элемент представлен <extLst/>
в следующей информации из спецификации ISO/IEC 29500:
Этот элемент задает список расширений с возможностью изменения, в котором определяются все будущие расширения типа <ext/>
элемента. Список расширений вместе с соответствующими будущими расширениями используется для расширения возможностей хранения инфраструктуры PresentationML. Это обеспечивает встроенную возможность хранения новых типов данных в инфраструктуре.
Примечание.
Использование этого extLst
элемента позволяет создаваемому приложению сохранять, было ли изменено это свойство расширения. конечная заметка
Класс Position
Класс Position
соответствует элементу <pos/>
. Этот элемент представлен <pos/>
в следующей информации из спецификации ISO/IEC 29500:
Этот элемент определяет данные о положении для размещения комментария на поверхности слайда. В версиях приложения, используемого для создания, с направлением текста слева направо эти данные о положении должны относиться к верхней левой точке рамки комментария. В версиях с направлением текста справа налево данные о положении должны относиться к верхней правой точке рамки комментария.
[Примечание. На точку привязки на поверхности слайда не влияет изменение макета справа налево или слева направо. То есть точка привязки остается неизменной для всех языковых версий. В качестве примера свойств абзаца можно привести выравнивание, границу, переопределение переносов, отступы, межстрочный интервал, заливка, направление текста и запрет висячих строк.]
[Примечание. Так как для комментариев нет указанного размера или форматирования, это мини-приложение пользовательского интерфейса, используемое для отображения комментария, может иметь любой размер, поэтому нижняя правая точка фигуры комментария определяется тем, как приложение просмотра выбирает отображение комментариев. В качестве примера свойств абзаца можно привести выравнивание, границу, переопределение переносов, отступы, межстрочный интервал, заливка, направление текста и запрет висячих строк.]
[Пример: <p:pos x="1426" y="660"/ конечный> пример]
Класс Text
Класс Text
соответствует элементу <text/>
. Этот элемент представлен <text/>
в следующей информации из спецификации ISO/IEC 29500:
Этот элемент определяет содержимое комментария. Это текст, которым автор комментария сопровождает слайд.
Возможные значения для этого элемента определяются типом данных схемы string
XML W3C.
Работа с классом Comment
Комментарий представляет собой текстовое примечание, присоединенное к слайду, основная цель которого — предоставить читателям возможность отправлять отзывы автору презентации. В каждом комментарии, присоединенном к определенной точке слайда, содержится строка неформатированного текста и данные об авторе. Комментарии могут отображаться при изменении презентации, но скрываются при демонстрации. Используемое для просмотра приложение определяет необходимость отображения комментариев и определяет их внешний вид.
Как показано в следующем примере кода пакета SDK Open XML, каждый экземпляр Comment
класса связан с экземпляром SlideCommentsPart класса , который представляет часть примечаний к слайдам, одну из частей пакета файла презентации PresentationML и часть, необходимую для каждого слайда в файле презентации с комментариями. Каждый Comment
экземпляр класса также связан с экземпляром CommentAuthor класса , который, в свою очередь, связан с частью представления с аналогичным именем, представленной классом CommentAuthorsPart . Авторы комментариев для презентации указываются в списке авторов комментариев, представленном классом CommentAuthorList , а комментарии для каждого слайда — в списке комментариев для этого слайда, представленном CommentList классом .
Таким Comment
образом, класс, представляющий <cm/>
элемент, также связан с другими классами, представляющими дочерние <cm/>
элементы элемента. К этим классам, как показано в следующем примере кода, относятся Position
класс , который указывает позицию комментария относительно слайда Text
, и класс , указывающий текстовое содержимое комментария.
Пример кода Open XML SDK
Следующий фрагмент кода из статьи Практическое руководство. Добавление комментария к слайду в презентации добавляет новую часть примечаний к существующему слайду в презентации (если слайд еще не содержит комментариев) и создает экземпляр класса Open XML SDK Comment
в части примечаний к слайдам. Он также добавляет список комментариев в часть комментариев путем создания экземпляра CommentList
класса , если он еще не существует; присваивает примечания идентификатор; а затем добавляет комментарий в список комментариев путем создания экземпляра Comment
класса, присваивая требуемые значения атрибутов. Кроме того, он создает экземпляры Position
классов и Text
, связанных с новым Comment
экземпляром класса. Полный пример кода см. в указанной выше статье.