Поделиться через


Работа с примечаниями

В этом разделе рассматривается класс 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 экземпляром класса. Полный пример кода см. в указанной выше статье.