Atualizar Campos

Normalmente, um campo inserido em Microsoft Word já contém um valor atualizado. Por exemplo, se o campo for uma fórmula ou um número de página, conterá o valor calculado correcto para a versão dada do documento. Mas se você tiver um aplicativo que gera ou modifica um documento com campos como mesclar dois documentos ou preenchê-lo com dados, então, idealmente, todos os campos devem ser atualizados para que o documento seja útil.

Como atualizar campos

Quando um documento é carregado, Aspose.Words imita o comportamento de Microsoft Word com a opção de atualizar automaticamente os campos desativada. O comportamento pode ser resumido da seguinte forma:

  • quando abre / guarda um documento, os campos permanecem intactos
  • é possível atualizar explicitamente todos os campos de um documento, por exemplo, reconstruir TOC, quando for necessário
  • quando você renderiza para PDF ou XPS, os campos relacionados à numeração de páginas nos cabeçalhos/rodapés são atualizados
  • quando você executa mail merge todos os campos são atualizados automaticamente

Atualizar Campos Programaticamente

Para atualizar explicitamente os campos em todo o documento, basta chamar o método UpdateFields. Para atualizar os campos contidos em parte de um documento, obtenha um objeto Range e chame o método UpdateFields. Em Aspose.Words, Você pode obter um Range para qualquer nó na árvore de documentos, como Section, HeaderFooter, Paragraph, etc. usando a propriedade Node.Range.Você pode atualizar o resultado de um único campo chamando o método Update.

Atualização automática dos campos relacionados com a Página durante a renderização

Quando você executa a conversão de um documento para um formato de página fixa, por exemplo, para PDF ou XPS, então Aspose.Words atualizará automaticamente os campos relacionados ao layout da página PAGE, PAGEREF encontrados nos cabeçalhos/rodapés do documento. Este comportamento imita o comportamento de Microsoft Word ao imprimir um documento.

Se você quiser atualizar todos os outros campos no documento, então você precisa chamar UpdateFields antes de renderizar o documento.

O exemplo de código a seguir mostra como atualizar todos os campos Antes de renderizar um documento:

Actualização Automática Do Campo Durante Mail Merge

Ao executar um mail merge, todos os campos do documento serão atualizados automaticamente. Isso ocorre porque o mail merge é um caso de uma atualização de campo. O programa encontra um campo mail merge e precisa atualizar seu resultado, o que envolve pegar o valor da fonte de dados e inseri-lo no campo. A lógica é, naturalmente, mais complicada, por exemplo, quando se chega ao final da região do documento/mail merge, mas ainda há mais dados a fundir, então a região tem de ser duplicada e o novo conjunto de campos actualizado.

Atualizar LastSavedTime Propriedade Antes De Salvar

Você pode usar a propriedade UpdateLastSavedTimeProperty se deseja atualizar a propriedade de Documento interna correspondente LastSavedTime ao salvar o documento.

O exemplo de código a seguir mostra como atualizar essa propriedade: