Налаштування властивостей поля

Aspose.Words надає можливість програмної взаємодії з різними властивостями полів. У цій статті ми розглянемо кілька прикладів, щоб ви зрозуміли основний принцип роботи з властивостями полів. Ви можете переглянути повний список властивостей для кожного типу поля у відповідному класі в Fields namespace.

Оновлення властивостей поля

Іноді користувачам потрібно змінити значення властивості поля. Наприклад, оновіть властивість AuthorName поля AUTHOR або змініть властивість FieldName поля MERGEFIELD.

Наступний приклад коду показує, як перейменувати Комбіновані поля в документі Word:

//For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
auto doc = MakeObject<Document>();
auto builder = MakeObject<DocumentBuilder>(doc);
builder->InsertField(u"MERGEFIELD MyMergeField1 \\* MERGEFORMAT");
builder->InsertField(u"MERGEFIELD MyMergeField2 \\* MERGEFORMAT");
// Select all field start nodes so we can find the merge fields.
SharedPtr<NodeCollection> fieldStarts = doc->GetChildNodes(NodeType::FieldStart, true);
for (const auto& fieldStart : System::IterateOver<FieldStart>(fieldStarts))
{
if (fieldStart->get_FieldType() == FieldType::FieldMergeField)
{
auto mergeField = MakeObject<WorkingWithFields::MergeField>(fieldStart);
mergeField->set_Name(mergeField->get_Name() + u"_Renamed");
}
}
doc->Save(ArtifactsDir + u"WorkingWithFields.RenameMergeFields.docx");

Результат відображення поля

Aspose.Words надає властивість для отримання результату поля для полів, які не мають вузла роздільника полів. Ми називаємо це" підробленим результатом “або відображенням результату; Microsoft Word відображає його в документі, обчислюючи значення поля” на льоту", але в моделі документа такого значення немає.

У наступному прикладі коду показано використання властивості DisplayResult:

//For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
auto doc = MakeObject<Document>(MyDir + u"Various fields.docx");
doc->UpdateFields();
for (const auto& field : System::IterateOver(document->get_Range()->get_Fields()))
{
std::cout << field->get_DisplayResult() << std::endl;
}