FieldRef
Содержание
[
Скрывать
]FieldRef class
Реализует поле REF.
Чтобы узнать больше, посетитеРабота с полями статья документации.
public class FieldRef : Field
Конструкторы
Имя | Описание |
---|---|
FieldRef() | Конструктор по умолчанию. |
Характеристики
Имя | Описание |
---|---|
BookmarkName { get; set; } | Получает или задает имя указанной закладки. |
DisplayResult { get; } | Получает текст, представляющий результат отображаемого поля. |
End { get; } | Получает узел, представляющий конец поля. |
Format { get; } | ПолучаетFieldFormat объект, обеспечивающий типизированный доступ к форматированию поля. |
IncludeNoteOrComment { get; set; } | Получает или задает, следует ли увеличивать номера сносок, концевых сносок и примечаний, которые отмечены закладкой, и вставлять соответствующие сноски, концевые сноски и текст комментария. |
InsertHyperlink { get; set; } | Получает или задает необходимость создания гиперссылки на абзац, отмеченный закладкой. |
InsertParagraphNumber { get; set; } | Получает или задает, следует ли вставлять номер абзаца, на который указана ссылка, точно так, как он отображается в документе. |
InsertParagraphNumberInFullContext { get; set; } | Получает или задает, следует ли вставлять номер абзаца, на который указана ссылка, в полном контексте. |
InsertParagraphNumberInRelativeContext { get; set; } | Получает или задает, следует ли вставлять номер абзаца, на который имеется ссылка, в относительном контексте. |
InsertRelativePosition { get; set; } | Получает или задает, следует ли вставлять относительную позицию абзаца, на который указывает ссылка. |
IsDirty { get; set; } | Получает или устанавливает, является ли текущий результат поля более неправильным (устаревшим) из-за других изменений, внесенных в документ. |
IsLocked { get; set; } | Получает или задает, заблокировано ли поле (не следует пересчитывать результат). |
LocaleId { get; set; } | Получает или задает LCID поля. |
NumberSeparator { get; set; } | Получает или задает последовательность символов, которая используется для разделения порядковых номеров и номеров страниц. |
Result { get; set; } | Получает или задает текст, расположенный между разделителем полей и концом поля. |
Separator { get; } | Получает узел, представляющий разделитель полей. Возможнонулевой . |
Start { get; } | Получает узел, представляющий начало поля. |
SuppressNonDelimiters { get; set; } | Получает или задает необходимость подавления символов, не являющихся разделителями. |
virtual Type { get; } | Получает тип поля Microsoft Word. |
Методы
Имя | Описание |
---|---|
GetFieldCode() | Возвращает текст между началом поля и разделителем поля (или концом поля, если разделителя нет). Включены как код поля, так и результат поля дочерних полей. |
GetFieldCode(bool) | Возвращает текст между началом поля и разделителем полей (или концом поля, если разделителя нет). |
Remove() | Удаляет поле из документа. Возвращает узел сразу после поля. Если конец поля является последним дочерним его родительского узла, возвращает его родительский абзац. Если поле уже удалено, возвращаетсянулевой . |
Unlink() | Выполняет отсоединение поля. |
Update() | Выполняет обновление поля. Выдает, если поле уже обновляется. |
Update(bool) | Выполняет обновление поля. Выдает, если поле уже обновляется. |
Примечания
Вставляет текст или графику, представленную указанной закладкой.
Примеры
Показывает, как создать текст с закладкой с помощью поля SET, а затем отобразить его в документе с помощью поля REF.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Назовите текст закладки с помощью поля SET.
// Это поле относится к «закладке», а не к структуре закладки, которая появляется в тексте, а к именованной переменной.
FieldSet fieldSet = (FieldSet)builder.InsertField(FieldType.FieldSet, false);
fieldSet.BookmarkName = "MyBookmark";
fieldSet.BookmarkText = "Hello world!";
fieldSet.Update();
Assert.AreEqual(" SET MyBookmark \"Hello world!\"", fieldSet.GetFieldCode());
// Обращаемся к закладке по имени в поле REF и отображаем ее содержимое.
FieldRef fieldRef = (FieldRef)builder.InsertField(FieldType.FieldRef, true);
fieldRef.BookmarkName = "MyBookmark";
fieldRef.Update();
Assert.AreEqual(" REF MyBookmark", fieldRef.GetFieldCode());
Assert.AreEqual("Hello world!", fieldRef.Result);
doc.Save(ArtifactsDir + "Field.SET.REF.docx");
Показывает, как вставлять поля REF в ссылочные закладки.
public void FieldRef()
{
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.StartBookmark("MyBookmark");
builder.InsertFootnote(FootnoteType.Footnote, "MyBookmark footnote #1");
builder.Write("Text that will appear in REF field");
builder.InsertFootnote(FootnoteType.Footnote, "MyBookmark footnote #2");
builder.EndBookmark("MyBookmark");
builder.MoveToDocumentStart();
// Мы применим собственный формат списка, в котором количество угловых скобок указывает уровень списка, на котором мы сейчас находимся.
builder.ListFormat.ApplyNumberDefault();
builder.ListFormat.ListLevel.NumberFormat = "> \x0000";
// Вставляем поле REF, которое будет содержать текст внутри нашей закладки, действовать как гиперссылка и клонировать сноски закладки.
FieldRef field = InsertFieldRef(builder, "MyBookmark", "", "\n");
field.IncludeNoteOrComment = true;
field.InsertHyperlink = true;
Assert.AreEqual(" REF MyBookmark \\f \\h", field.GetFieldCode());
// Вставляем поле REF и отображаем, находится ли указанная закладка выше или ниже него.
field = InsertFieldRef(builder, "MyBookmark", "The referenced paragraph is ", " this field.\n");
field.InsertRelativePosition = true;
Assert.AreEqual(" REF MyBookmark \\p", field.GetFieldCode());
// Отображение номера закладки в списке, как он отображается в документе.
field = InsertFieldRef(builder, "MyBookmark", "The bookmark's paragraph number is ", "\n");
field.InsertParagraphNumber = true;
Assert.AreEqual(" REF MyBookmark \\n", field.GetFieldCode());
// Отобразить номер списка закладок, но без опущенных символов, не являющихся разделителями, таких как угловые скобки.
field = InsertFieldRef(builder, "MyBookmark", "The bookmark's paragraph number, non-delimiters suppressed, is ", "\n");
field.InsertParagraphNumber = true;
field.SuppressNonDelimiters = true;
Assert.AreEqual(" REF MyBookmark \\n \\t", field.GetFieldCode());
// Переход на один уровень списка вниз.
builder.ListFormat.ListLevelNumber++;
builder.ListFormat.ListLevel.NumberFormat = ">> \x0001";
// Отображение номера закладки в списке и номеров всех уровней списка над ней.
field = InsertFieldRef(builder, "MyBookmark", "The bookmark's full context paragraph number is ", "\n");
field.InsertParagraphNumberInFullContext = true;
Assert.AreEqual(" REF MyBookmark \\w", field.GetFieldCode());
builder.InsertBreak(BreakType.PageBreak);
// Отобразить номера уровней списка между этим полем REF и закладкой, на которую оно ссылается.
field = InsertFieldRef(builder, "MyBookmark", "The bookmark's relative paragraph number is ", "\n");
field.InsertParagraphNumberInRelativeContext = true;
Assert.AreEqual(" REF MyBookmark \\r", field.GetFieldCode());
// В конце документа закладка появится здесь как элемент списка.
builder.Writeln("List level above bookmark");
builder.ListFormat.ListLevelNumber++;
builder.ListFormat.ListLevel.NumberFormat = ">>> \x0002";
doc.UpdateFields();
doc.Save(ArtifactsDir + "Field.REF.docx");
}
/// <summary>
/// Заставьте конструктор документов вставить поле REF, ссылаться на закладку и добавить текст до и после него.
/// </summary>
private static FieldRef InsertFieldRef(DocumentBuilder builder, string bookmarkName, string textBefore, string textAfter)
{
builder.Write(textBefore);
FieldRef field = (FieldRef)builder.InsertField(FieldType.FieldRef, true);
field.BookmarkName = bookmarkName;
builder.Write(textAfter);
return field;
}
Смотрите также
- class Field
- пространство имен Aspose.Words.Fields
- сборка Aspose.Words