Aspose::Words::DocumentBuilder::MoveToField метод
Содержание
[
Скрывать
]DocumentBuilder::MoveToField method
Перемещает курсор к полю в документе.
void Aspose::Words::DocumentBuilder::MoveToField(const System::SharedPtr<Aspose::Words::Fields::Field> &field, bool isAfter)
| Параметр | Тип | Описание |
|---|---|---|
| поле | const System::SharedPtr<Aspose::Words::Fields::Field>& | Поле, к которому нужно переместить курсор. |
| isAfter | bool | Когда true, перемещает курсор после конца поля. Когда false, перемещает курсор перед началом поля. |
Примеры
Показывает, как переместить курсор точки вставки узла document builder к конкретному полю.
auto doc = System::MakeObject<Aspose::Words::Document>();
auto builder = System::MakeObject<Aspose::Words::DocumentBuilder>(doc);
// Вставьте поле с помощью DocumentBuilder и добавьте после него последовательность текста.
System::SharedPtr<Aspose::Words::Fields::Field> field = builder->InsertField(u" AUTHOR \"John Doe\" ");
// Курсор builder'а в данный момент находится в конце документа.
ASSERT_TRUE(System::TestTools::IsNull(builder->get_CurrentNode()));
// Переместите курсор к полю, указав, разместить ли курсор перед полем или после него.
builder->MoveToField(field, moveCursorToAfterTheField);
// Обратите внимание, что курсор находится за пределами поля в обоих случаях.
// Это означает, что мы не можем редактировать поле с помощью builder'а таким образом.
// Чтобы отредактировать поле, мы можем использовать метод MoveTo builder'а на FieldStart поля
// или узел FieldSeparator, чтобы разместить курсор внутри.
if (moveCursorToAfterTheField)
{
ASSERT_TRUE(System::TestTools::IsNull(builder->get_CurrentNode()));
builder->Write(u" Text immediately after the field.");
ASSERT_EQ(u"\u0013 AUTHOR \"John Doe\" \u0014John Doe\u0015 Text immediately after the field.", doc->GetText().Trim());
}
else
{
ASPOSE_ASSERT_EQ(field->get_Start(), builder->get_CurrentNode());
builder->Write(u"Text immediately before the field. ");
ASSERT_EQ(u"Text immediately before the field. \u0013 AUTHOR \"John Doe\" \u0014John Doe\u0015", doc->GetText().Trim());
}
См. также
- Class Field
- Class DocumentBuilder
- Namespace Aspose::Words
- Library Aspose.Words for C++