В этом разделе
SDK преобразует Vintasoft-аннотации в WANG-аннотации, когда Vintasoft-аннотации сохраняются в WANG-формате. К сожалению, WANG-формат поддерживает лишь ограниченный набор типов и свойств аннотаций, поэтому не все Vintasoft-аннотации и/или их свойства могут быть преобразованы в WANG-формат без существенных изменений. Некоторые типы Vintasoft-аннотаций не сопоставимы с WANG-форматом, равно как и некоторые свойства аннотаций не имеют аналогов WANG, поэтому эти аннотации и подобные свойства не могут быть сохранены в WANG. Также некоторые значения некоторых свойств аннотаций могут привести к критическим изменениям внешнего вида аннотаций при сохранении в WANG-формате; из-за этого такие аннотации также невозможно сохранить в WANG-формате. В остальных случаях при конвертации в WANG алгоритм автоматически выбирает наиболее похожие типы аннотаций и их свойства, чтобы оставить внешний вид аннотаций после сохранения или загрузки без существенных изменений.
Сохранение Vintasoft-аннотаций в WANG-пакет
Вот список аннотаций, которые можно сохранить в WANG-пакет:
-
Не повернутая (AnnotationData.Rotation == 0) прямоугольная аннотация (RectangleAnnotationData) с заливкой прозрачным цветом (
*
) и границей (AnnotationData.Border == true) будет сохранена как WANG-аннотацию "Hollow rectangle".
-
Не повернутая (AnnotationData.Rotation == 0) прямоугольная аннотация (RectangleAnnotationData) с заливкой не прозрачным цветом (
*
) и без границы (AnnotationData.Border == false) будет сохранена как WANG-аннотация "Filled rectangle".
-
Повернутая (AnnotationData.Rotation != 0) прямоугольная аннотация (RectangleAnnotationData) с заливкой прозрачным цветом (
*
) и границей (AnnotationData.Border == true) будет сохранен как WANG-аннотация "Hollow polygon"; прямоугольник будет аппроксимирован многоугольником.
-
Повернутая (AnnotationData.Rotation != 0) прямоугольная аннотация (RectangleAnnotationData) с заливкой не прозрачным цветом (
*
) и без границы (AnnotationData.Border == false) будет сохранена как WANG-аннотация "Filled polygon"; прямоугольник будет аппроксимирован многоугольником.
-
Эллипс-аннотация (EllipseAnnotationData) с заливкой прозрачным цветом (
*
) и границей (AnnotationData.Border == true) будет сохранена как WANG-аннотация "Hollow polygon"; эллипс будет аппроксимирован многоугольником.
-
Эллипс-аннотация (EllipseAnnotationData) с заливкой не прозрачным цветом (
*
) и без границы (AnnotationData.Border == false) будет сохранена как WANG- аннотация "Filled polygon"; эллипс будет аппроксимирован многоугольником.
- Не повернутая (AnnotationData.Rotation == 0) ссылка-аннотация (LinkAnnotationData) с границей (AnnotationData.Border == true) будет сохранена как WANG-аннотация "Attach-a-note".
- Не повернутая (AnnotationData.Rotation == 0) ссылка-аннотация (LinkAnnotationData) без границы (AnnotationData.Border == false) будет сохранена как WANG-аннотация "Typed text".
- Не повернутая (AnnotationData.Rotation == 0) текстовая аннотация (TextAnnotationData) с границей (AnnotationData.Border == true) будет сохранена как WANG-аннотация "Attach-a-note".
- Не повернутая текстовая аннотация (TextAnnotationData) без границы (AnnotationData.Border == false) будет сохранена как WANG-аннотация "Typed text".
- Не повернутая подсветка-аннотация (HighlightAnnotationData) будет сохранена как WANG-аннотация "Filled rectangle".
- Не повернутая (AnnotationData.Rotation == 0) и не зеркалированная (AnnotationData.HorizontalMirrored == false и AnnotationData.VerticalMirrored == false) аннотация 'встроенное изображение' (EmbeddedImageAnnotationData) будет сохранена как WANG-аннотация "Image embedded".
- Аннотация 'линии' (LineAnnotationData) будет сохранена как WANG-аннотация "Straight line".
- Аннотация 'линии' (LinesAnnotationData) будет сохранена как WANG-аннотация "Freehand line"; линии с интерполяцией (LinesAnnotationData.UseInterpolation == true) будут аппроксимироваться полилинией.
-
Полигон-аннотация (PolygonAnnotationData) с заливкой прозрачным цветом (
*
) и границей (AnnotationData.Border == true) будет сохранена как WANG-аннотация "Hollow polygon"; полигон с интерполяцией (LinesAnnotationData.UseInterpolation == true) будет аппроксимирован ломаной линией.
-
Полигон-аннотация (PolygonAnnotationData) с заливкой не прозрачным цветом (
*
) и без границы (AnnotationData.Border == false) будет сохранена как WANG-аннотация "Filled polygon"; полигон с интерполяцией (LinesAnnotationData.UseInterpolation == true) будет аппроксимирован ломаной линией.
- Групповая аннотация (GroupAnnotationData) будет сохранена в соответствии со следующим ниже руководящим принципом. Все аннотации, входящие в группу, будут сохранены в полном соответствии с представленными в этой статье принципами сохранения в WANG-формат. Если свойство "Name" группы аннотаций не пустое, то для всех сохраненных аннотаций поле "GroupName" будет перезаписано значением этого свойства. Если свойство "Name" пустое, то значение поля "GroupName" будет сформировано по шаблону "$GroupN", где N - порядковый номер группы, начиная с 1. При загрузке аннотаций из WANG-пакета аннотации с одинаковым значением поля "GroupName" будут объединены в одну аннотацию GroupAnnotationData, при этом значение свойства "Name" будет перезаписано на значение этого поля.
Все остальные аннотации, включая аннотации, полученные из вышеупомянутых аннотаций, не могут быть сохранены в пакете WANG.
(*) Заливка аннотации цветом считается прозрачной при выполнении любого условия, перечисленного ниже:
- Свойство FillBrush у аннотации имеет значение null.
- Свойство FillBrush у аннотации имеет тип, отличный от AnnotationSolidBrush.
- Свойство FillBrush у аннотации имеет тип AnnotationSolidBrush, а FillBrush.Color имеет значение Color.Transparent.
При сохранении аннотации возможна частичная или полная потеря некоторых значений свойств:
-
При сохранении базовой аннотации (AnnotationData)
-
значения следующих свойств сохраняются полностью:
-
значения следующих свойств сохраняются частично:
- Сохраняется только цвет и толщина контура (AnnotationData.Outline). Информация о DashStyle, StartCap, EndCap, LineJoin будет потеряна. Десериализованная аннотация будет иметь сплошной контур.
- Сохраняется только цвет кисти (AnnotationData.FillBrush).
-
значения следующих свойств будут полностью потеряны:
-
При сохранении аннотации прямоугольника (RectangleAnnotationData)
-
значения следующих свойств будут полностью потеряны:
-
При сохранении аннотации эллипса (EllipseAnnotationData)
-
значения следующих свойств будут полностью потеряны:
-
При сохранении аннотации ссылки (LinkAnnotationData)
-
значения следующих свойств будут полностью потеряны:
-
При сохранении текстовой аннотации (TextAnnotationData)
-
значения следующих свойств сохраняются частично:
-
значения следующих свойств будут полностью потеряны:
-
При сохранении аннотации 'подсветка' (HighlightAnnotationData)
-
значения следующих свойств будут полностью потеряны:
-
При сохранении аннотации 'линия' (LineAnnotationData)
-
значения следующих свойств будут полностью потеряны:
-
При сохранении аннотации 'линии' (LinesAnnotationData)
-
значения следующих свойств будут полностью потеряны:
-
При сохранении полигон-аннотации (PolygonAnnotationData)
-
значения следующих свойств будут полностью потеряны:
Загрузка Vintasoft-аннотаций из WANG-пакета
- "Hollow rectangle" аннотация преобразуется в RectangleAnnotationData.
- "Filled rectangle" аннотация преобразуется либо в RectangleAnnotationData, либо в HighlightAnnotationData в зависимости от значения поля "Highlighting".
- "Text from file", "Typed text", "Attach-a-note" и "Text stamp" преобразуются либо в TextAnnotationData, либо в LinkAnnotationData в зависимости от наличия блока гиперссылок.
- "Straight line" аннотация преобразуется в LineAnnotationData.
- "Freehand line" аннотация преобразуется в LinesAnnotationData.
- "Hollow polygon" и "Filled polygon" аннотации преобразуются в PolygonAnnotationData.
- Все загруженные аннотации с одинаковым значением поля "GroupdName" будут объединены в одну аннотацию GroupAnnotationData, при этом значение свойства AnnotationData.Name будет изменено на значение поля "GroupdName".
При загрузке аннотаций из WANG-пакета происходит инициализация следующих свойств аннотаций:
-
Для всех аннотаций, загруженных из WANG-пакета
- Следующие свойства инициализируются значениями по умолчанию: AnnotationData.CanMove, AnnotationData.CanRotate, AnnotationData.CanResize, AnnotationData.CanMirror, AnnotationData.CreatedBy, AnnotationData.HorizontalMirrored, AnnotationData.Guid, AnnotationData.ModifiedBy, AnnotationData.Name, AnnotationData.ToolTip, AnnotationData.VerticalMirrored.
- Свойство AnnotationData.ModifiedTime инициализируется значением свойства AnnotationData.CreationTime.
- AnnotationData.FillBrush свойство инициализируется либо значением AnnotationSolidBrush с цветовой заливкой аннотации, либо значением null, если цветовая заливка аннотации прозрачна.
- AnnotationData.Outline свойство инициализируется только шириной и цветом. Свойство AnnotationData.Outline некоторых аннотаций без гранцы (AnnotationData.Border == false) инициализируется значением по умолчанию.
-
Для RectangleAnnotationData
-
Для HighlightAnnotationData
-
Для TextAnnotationData:
-
Для LinkAnnotationData
-
Для аннотации PolygonAnnotationData
- Свойство AnnotationData.Border инициализируется значением True, если WANG-аннотация имеет тип "Hollow polygon"; в противном случае, свойство инициализируется значением False.