Налаштування властивостей поля
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; | |
} |