Campos de Numeração (AUTONUM, PAGE, SEQ, e Mais)
Campos de Numeração (AUTONUM, PAGE, SEQ e Mais)
Este guia mostra como trabalhar com campos de numeração automática do Word em Aspose.Words FOSS para .NET, e como eles diferem da numeração baseada em listas. Trabalhando com Listas covers List, ListFormat, e ListLevel – o modelo de objetos por trás dos parágrafos de listas numeradas e marcadas do Word. O Word também possui uma família separada de numeração fields que calculam um número na localização do campo no texto, em vez de através da formatação de lista de parágrafos: numeração automática legal e de contorno, contadores de página e seção, numeração vinculada a listas e sequências nomeadas. Ele modela cada um como um Field subclasse no the Aspose.Words.Fields namespace, mais o NumberStyle enum compartilhado pelos níveis de lista, notas de rodapé e notas finais, e números de página para escolher como um número é renderizado.
Campos de Numeração Automática: AUTONUM, AUTONUMLGL, AUTONUMOUT
FieldAutoNum implementa o AUTONUM campo (numeração sequencial simples) e expõe SeparatorCharacter. FieldAutoNumLgl implements AUTONUMLGL (numeração estilo legal/outline), adicionando RemoveTrailingPeriod junto ao seu próprio SeparatorCharacter. FieldAutoNumOut implements AUTONUMOUT (outline numbering) e não tem propriedades próprias além da base Field membros descritos em Trabalhando com Campos.
Numeração Vinculada a Lista com FieldListNum
FieldListNum implementa o campo LISTNUM: ListName nomeia a definição de numeração abstrata a ser usada, e HasListName relata se o código do campo realmente fornece um nome. ListLevel substitui o nível de lista padrão onde o campo numera, e StartingNumber define o valor a partir do qual a numeração do campo começa.
Contadores de Página e Seção: FieldPage, FieldSection, FieldSectionPages
FieldPage implementa o PAGE campo e FieldSectionPages implements SECTIONPAGES. Ambos dependem do layout de página calculado para produzir um resultado; assim como o NUMPAGES campo descrito em Trabalhando com Campos, valores de campo dependentes de layout não são calculados nesta edição porque ela não inclui um mecanismo de layout/renderização de página, portanto esses campos avaliam para um placeholder 0. FieldSection implements SECTION, retornando o número da seção atual do documento – não depende da paginação e não é afetado por essa limitação.
Sequências Nomeadas com FieldSeq
FieldSeq implementa o campo SEQ para sequências nomeadas e numeradas independentemente (como figuras ou tabelas): SequenceIdentifier nomeia a sequência, e BookmarkName opcionalmente aponta o campo para um item em outra parte do documento em vez da própria localização do campo. InsertNextNumber insere o próximo número na sequência sem exibir um valor para a posição atual, e ResetNumber / ResetHeadingLevel redefinem o contador da sequência para um número específico, ou reiniciam-no em um nível de título específico.
FieldRevNum
FieldRevNum implementa o campo REVNUM e não possui propriedades próprias além dos membros base Field.
Formatando Números com NumberStyle
NumberStyle é o enum usado em níveis de lista, numeração de notas de rodapé/final, e números de página para selecionar como um número é renderizado. Estilos comuns incluem Arabic, UppercaseRoman / LowercaseRoman, UppercaseLetter / LowercaseLetter, Ordinal e OrdinalText, juntamente com um grande conjunto de estilos específicos de localidade (Kanji, Hangul, Hanja, ThaiLetter, HindiLetter1 e muitos outros) além de Bullet, LeadingZero, None e Custom para um formato fornecido pelo chamador.
Dicas e Melhores Práticas
- Recorra a
FieldListNumquando um número precisar referenciar uma definição de lista existente por nome; useFieldAutoNum/FieldAutoNumLgl/FieldAutoNumOutpara numeração que não esteja atrelada a umListespecífico. - Lembre-se de que
FieldPageeFieldSectionPagesdependem do layout, da mesma forma queNUMPAGES— não confie que seusResultreflitam uma contagem de páginas realmente calculada nesta edição. - Use
FieldSeq.BookmarkNamequando um campo SEQ precisar referenciar um número definido em outro lugar do documento em vez de incrementar seu próprio contador no local do campo. - Defina
FieldSeq.ResetHeadingLevelquando uma sequência numerada (como números de figuras) deve reiniciar em cada novo capítulo ou título de seção.
Problemas comuns
| Problema | Causa | Correção |
|---|---|---|
FieldPage ou FieldSectionPages sempre mostra 0 | Esses campos dependem do computed page layout, que não faz parte desta edição | Comportamento esperado – use o comercial Aspose.Words para .NET se for necessário um computed page count |
FieldListNum não usa a formatação de lista esperada | ListName não corresponde a uma definição de numeração abstrata presente no documento | Confirme o nome exato da lista ou verifique HasListName para ver se o código do campo fornece um. |
FieldSeq numbers não reiniciam onde esperado | ResetNumber ou ResetHeadingLevel não foi definido no campo que deveria reiniciar a sequência | Defina a propriedade de reinicialização apropriada nessa instância de FieldSeq |
FAQ
Qual é a diferença entre a numeração de lista e esses campos de numeração?
Numeração de lista (List, ListFormat, ListLevel, coberto em Trabalhando com Listas) formata parágrafos inteiros como itens de lista. Os campos nesta página calculam um número em um ponto específico do texto – para sequências, contadores de página/seção ou numeração automática ao estilo jurídico – independentemente da formatação de lista em parágrafos.
Por que um campo PAGE sempre avalia como 0?
FieldPage depende do layout de página calculado, e esta edição não inclui um mecanismo de page-layout/rendering — a mesma razão pela qual NUMPAGES avalia para um valor placeholder.
Como criar uma sequência nomeada e numerada independentemente, como “Figure 1”, “Figure 2”?
Use FieldSeq com um SequenceIdentifier consistente (como "Figure") em cada instância de campo; cada uma exibe o próximo número nessa sequência.
Como controlar em qual estilo de numeral ou letra um número é renderizado?
Use o enum NumberStyle — valores como Arabic, UppercaseRoman, LowercaseLetter e OrdinalText selecionam o estilo de renderização, juntamente com Bullet, None e Custom para formatos não numéricos ou fornecidos pelo chamador.
API Reference Resumo
| Classe / Enum | Descrição |
|---|---|
FieldAutoNum | AUTONUM campo; SeparatorCharacter |
FieldAutoNumLgl | AUTONUMLGL campo; RemoveTrailingPeriod, SeparatorCharacter |
FieldAutoNumOut | AUTONUMOUT campo |
FieldListNum | LISTNUM campo; ListName, HasListName, ListLevel, StartingNumber |
FieldPage | PAGE campo (dependente de layout; avalia para 0 nesta edição) |
FieldSection | SECTION campo |
FieldSectionPages | SECTIONPAGES campo (dependente de layout; avalia para 0 nesta edição) |
FieldSeq | SEQ campo; SequenceIdentifier, BookmarkName, InsertNextNumber, ResetNumber, ResetHeadingLevel |
FieldRevNum | REVNUM campo |
NumberStyle | Enum de estilos de renderização de números usados por níveis de lista, notas de rodapé/notas de fim e números de página |