|
<< Нажмите, чтобы показать Содержание >> Сноски в рамке в документе ТРВ-Редактора (TRichView) |
Сноска выглядит как число (тип нумерации указывается в TRVStyle.SidenoteNumbering). Если задано свойство FormatString, число форматируется на основе этой строки (например, если FormatString содержит один символ, сноска отобразит один символ). Сноска содержит поддокумент. Этот поддокумент не отображается в TCustomRichView, куда вставляется сноска, но его можно распечатать компонентом TRVPrint: он отображается в прямоугольнике (текстовом блоке) по заданным координатам.
Компонент TRVReportHelper не показывает поддокументы сносок. Если нужно нарисовать документ со сносками на заданной канве, используйте TRVPrint в режиме виртуального принтера.
Примечание о СРВ-Редакторе (ScaleRichView): компонент TSRichViewEdit показывает и даёт редактировать сноски.
Класс этого типа элемента: TRVSidenoteItemInfo (см. для подробной информации).
Тип (стиль) этого элемента: rvsSidenote (-206)
Следующие методы быстрого изменения документа добавляют элемент этого типа в конец документа:
▪AddItem (создайте объект TRVSidenoteItemInfo, затем добавьте в документ методом AddItem)
Следующие методы возвращают объект TRVSidenoteItemInfo:
Следующие методы редактирования документа вставляют элемент этого типа в позицию каретки:
▪InsertItem (создайте объект TRVSidenoteItemInfo, затем вставьте в документ методом InsertItem)
Следующие методы возвращают объект TRVSidenoteItemInfo в позиции каретки:
Следующие методы меняют свойства как операции редактирования:
▪SetCurrentItemExtraIntPropertyEx;
▪SetCurrentItemExtraStrPropertyEx;
Сноски имеют все свойства нумерованных последовательностей.
Отличия:
▪NumberType только для чтения; оно всегда возвращает значение TRVStyle.SidenoteNumbering;
▪SeqName = '@sidenote@' и его нельзя менять.
Кроме того элемент имеет следующие свойства:
▪BoxPosition – содержит свойства, задающие координаты прямоугольника (текстового блока) для отображения поддокумента сноски;
▪BoxProperties – содержит свойства, определяющие размер, цвет и рамку этого прямоугольника, а также выравнивание его содержимого.
Эти свойства также доступны как rveipcFloatHorizontalAnchor, rveipcFloatHorizontalPositionKind, rveipcFloatHorizontalOffset, rveipcFloatHorizontalAlign, rveipcFloatVerticalAnchor, rveipcFloatVerticalPositionKind, rveipcFloatVerticalOffset, rveipcFloatVerticalAlign, rveipcFloatRelativeToCell, rveipcFloatPositionInText, rveipcBoxWidth, rveipcBoxHeight, rveipcBoxWidthType, rveipcBoxHeightType, rveipcBoxBorderColor, rveipcBoxBorderWidth, rveipcBoxBorderInternalWidth, rveipcBoxBorderStyle, rveipcBoxBorderVisibleBorders_Left, rveipcBoxBorderVisibleBorders_Top, rveipcBoxBorderVisibleBorders_Right, rveipcBoxBorderVisibleBorders_Bottom, rveipcBoxBorderBorderOffsets_Left, rveipcBoxBorderBorderOffsets_Top, rveipcBoxBorderBorderOffsets_Right, rveipcBoxBorderBorderOffsets_Bottom, rveipcBoxColor, rveipcBoxPadding_Left, rveipcBoxPadding_Top, rveipcBoxPadding_Right, rveipcBoxPadding_Bottom, rveipcBoxVAlign. Изменение их таким способом позволяет реализовать операции редактирования.
Экспорт в HTML
Поддокументы для всех сносок сохраняются после основного документа. Перед каждым поддокументом вставляется <a name="sidenoteN"></a>, где N — номер данной сноски (в списке всех нумерованных последовательностей и сносок). Сноски сохраняются как гиперссылки на этот якорь.
RTF и DocX
Сноски можно экспортировать в форматы RTF и DocX. Они сохраняются как текст NoteText, за которым идёт плавающий блок, содержащий Document. Вокруг текста сноски добавляется закладка с именем '_sidenoteN' (где N – номер этой сноски), позволяющая сохранять ссылки на сноску из её документа в виде ссылок на эту закладку.
Некоторые комбинации свойств позиционирования блоков не поддерживаются Microsoft Word*, поэтому ТРВ-Редактор преобразует их:
▪MS Word не поддерживает вертикальное выравнивание относительно абзаца, поэтому оно сохраняется как выравнивание относительно строки;
▪MS Word не поддерживает относительное (в процентах) позиционирование относительно строки или абзаца, поэтому оно сохраняется как абсолютное позиционирование (с нулевым смещением);
Другие отличия*:
▪при позиционировании относительно строки, MS Word выравнивает текстовый блок не относительно всей строки, а относительно её верхнего края, поэтому выравнивание по центру и по нижнему краю относительно строки различаются в TRichView и MS Word;
▪MS Word не реализует все параметры вертикального выравнивания относительно ячейки таблицы, поэтому в TRichView и MS Word это работает по-разному, см. BoxPosition.VerticalAnchor;
▪MS Word не поддерживает разные отступы для рамки и для фона, поэтому BoxProperties.Border.BorderOffsets не сохраняются в RTF.
(* Данная информация основана на тестировании MS Word 2013)
Плавающие блоки пока нельзя импортировать из RTF, но их можно импортировать из DocX. Сноски в рамке импортируются из DocX как текстовые блоки.
В DocX TRichView поддерживает текстовые поля как в старом (VML), так и в новом (DrawingML) форматах.
Markdown
Сноски сохраняются как сноски, если активно расширение формата со сносками (опция rvmdeFootnotes включена TRichView.MarkdownProperties.Extensions), и опция rvntSidenote включена TRichView.MarkdownProperties.NotesSavedAsFootnotes.
В противном случае документ сноски сохраняется в месте вставки сноски в квадратных скобках.
Если активно расширение формата с таблицами, сноски в ячейках таблиц не могут быть сохранены.
Текст
При копировании или сохранении выделенного текста сноски не включаются в текст. При сохранении всего текста они сохраняются в месте вставки в квадратных скобках:
Это текст [a последовательность символов] для показа сносок
[b примечание, помещаемое в конец документа].