Personalizar Propriedades Do Campo

Aspose.Words fornece a capacidade de interagir programaticamente com várias propriedades de campo. Neste artigo, veremos alguns exemplos para que você entenda o princípio básico de trabalhar com propriedades de campo. Você pode ver a lista completa de propriedades para cada tipo de campo na classe correspondente no Fields namespace.

Actualização Da Propriedade Do Campo

Às vezes, os usuários precisam alterar o valor de uma propriedade de campo. Por exemplo, atualize a propriedade AuthorName do campo AUTHOR ou altere a propriedade FieldName do campo MERGEFIELD.

O exemplo de código a seguir mostra como renomear campos de mesclagem em um documento do 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");

Resultado Da Apresentação Do Campo

Aspose.Words fornece uma propriedade para obter o resultado do campo para campos que não possuem um nó separador de campo. Chamamos isso de" resultado falso " ou resultado de exibição; Microsoft Word o exibe no documento calculando o valor do campo em tempo real, mas não existe esse valor no modelo do documento.

O exemplo de código a seguir mostra o uso da propriedade 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;
}