Campos de numeración (AUTONUM, PAGE, SEQ y más)
Campos de numeración (AUTONUM, PAGE, SEQ y más)
Esta guía muestra cómo trabajar con los campos de numeración automática de Word en Aspose.Words FOSS para .NET, y cómo difieren de la numeración basada en listas. Trabajando con listas covers List, ListFormat, y ListLevel – el modelo de objetos detrás de los párrafos de listas numeradas y con viñetas de Word. Word también tiene una familia separada de numeración fields que calculan un número en la ubicación del campo en el texto, en lugar de a través del formato de lista de párrafo: numeración automática legal y de esquema, contadores de página y sección, numeración vinculada a listas y secuencias nombradas. Modela cada una como una Field subclase en el Aspose.Words.Fields namespace, más el NumberStyle enum compartido por niveles de lista, notas al pie y notas finales, y números de página para elegir cómo se representa un número.
Campos de numeración automática: AUTONUM, AUTONUMLGL, AUTONUMOUT
FieldAutoNum implementa el AUTONUM campo (numeración secuencial simple) y expone SeparatorCharacter. FieldAutoNumLgl implements AUTONUMLGL (numeración tipo legal/esquema), añadiendo RemoveTrailingPeriod junto a su propio SeparatorCharacter. FieldAutoNumOut implements AUTONUMOUT (numeración de esquema) y no tiene propiedades propias más allá del base Field miembros descritos en Trabajando con campos.
Numeración vinculada a listas con FieldListNum
FieldListNum implementa el campo LISTNUM: ListName nombra la definición abstracta de numeración a usar, y HasListName informa si el código del campo realmente proporciona un nombre. ListLevel sobrescribe el nivel de lista predeterminado en el que el campo numera, y StartingNumber establece el valor desde el cual comienza la numeración del campo.
Contadores de página y sección: FieldPage, FieldSection, FieldSectionPages
FieldPage implementa el PAGE campo y FieldSectionPages implements SECTIONPAGES. Ambos dependen del diseño de página calculado para producir un resultado; al igual que el NUMPAGES campo descrito en Trabajando con campos, los valores de campo dependientes del diseño no se calculan en esta edición porque no incluye un motor de diseño/renderizado de páginas, por lo que estos campos evalúan a un marcador de posición 0. FieldSection implements SECTION, devolviendo el número de sección actual del documento – no depende de la paginación y no se ve afectado por esa limitación.
Secuencias nombradas con FieldSeq
FieldSeq implementa el campo SEQ para secuencias nombradas y numeradas de forma independiente (como figuras o tablas): SequenceIdentifier nombra la secuencia, y BookmarkName opcionalmente apunta el campo a un elemento en otra parte del documento en lugar de la propia ubicación del campo. InsertNextNumber inserta el siguiente número en la secuencia sin mostrar un valor para la posición actual, y ResetNumber / ResetHeadingLevel restablecen el contador de la secuencia a un número específico, o lo reinician en un nivel de encabezado específico.
FieldRevNum
FieldRevNum implementa el campo REVNUM, y no tiene propiedades propias más allá de los miembros base Field.
Formato de números con NumberStyle
NumberStyle es el enum utilizado en los niveles de lista, la numeración de notas al pie/final y los números de página para seleccionar cómo se representa un número. Los estilos comunes incluyen Arabic, UppercaseRoman / LowercaseRoman, UppercaseLetter / LowercaseLetter, Ordinal y OrdinalText, junto con un amplio conjunto de estilos específicos de locale (Kanji, Hangul, Hanja, ThaiLetter, HindiLetter1 y muchos otros) más Bullet, LeadingZero, None y Custom para un formato suministrado por el llamador.
Consejos y mejores prácticas
- Utilice
FieldListNumcuando un número necesite referenciar una definición de lista existente por nombre; useFieldAutoNum/FieldAutoNumLgl/FieldAutoNumOutpara numeración que no esté vinculada a unListen particular. - Recuerde que
FieldPageyFieldSectionPagesdependen del diseño, al igual queNUMPAGES; no confíe en que suResultrefleje un recuento de páginas calculado realmente en esta edición. - Utilice
FieldSeq.BookmarkNamecuando un campo SEQ necesite referenciar un número definido en otra parte del documento en lugar de incrementar su propio contador en la ubicación del campo. - Configure
FieldSeq.ResetHeadingLevelcuando una secuencia numerada (como los números de figura) deba reiniciarse en cada nuevo capítulo o encabezado de sección.
Problemas comunes
| Problema | Causa | Solución |
|---|---|---|
FieldPage o FieldSectionPages siempre muestra 0 | Estos campos dependen del diseño de página calculado, que no forma parte de esta edición | Comportamiento esperado – use la versión comercial Aspose.Words para .NET si se requiere un recuento de páginas calculado |
FieldListNum no utiliza el formato de lista esperado | ListName no coincide con una definición de numeración abstracta presente en el documento | Confirma el nombre exacto de la lista, o verifica HasListName para ver si el código del campo proporciona uno en absoluto |
Los números de FieldSeq no se reinician donde se espera | ResetNumber o ResetHeadingLevel no se establecieron en el campo que debería reiniciar la secuencia | Establece la propiedad de reinicio adecuada en esa instancia de FieldSeq |
FAQ
¿Cuál es la diferencia entre la numeración de listas y estos campos de numeración?
Numeración de lista (List, ListFormat, ListLevel, cubierto en Trabajando con Listas) formatea párrafos completos como elementos de lista. Los campos en esta página calculan un número en un punto específico del texto – para secuencias, contadores de página/sección, o numeración automática al estilo legal – independiente del formato de lista de párrafos.
¿Por qué un campo PAGE siempre evalúa a 0?
FieldPage depende del diseño de página calculado, y esta edición no incluye un motor de diseño/renderizado de página – la misma razón por la que NUMPAGES evalúa a un valor de marcador de posición.
¿Cómo creo una secuencia nombrada e independientemente numerada como “Figure 1”, “Figure 2”?
Utilice FieldSeq con un SequenceIdentifier coherente (como "Figure") en cada instancia de campo; cada una muestra el siguiente número en esa secuencia.
¿Cómo controlo el estilo de numeral o letra en el que se representa un número?
Utilice el enum NumberStyle – valores como Arabic, UppercaseRoman, LowercaseLetter y OrdinalText seleccionan el estilo de renderizado, junto con Bullet, None y Custom para formatos no numéricos o proporcionados por el llamador.
API Reference Resumen
| Clase / Enumeración | Descripción |
|---|---|
FieldAutoNum | AUTONUM campo; SeparatorCharacter |
FieldAutoNumLgl | AUTONUMLGL campo; RemoveTrailingPeriod, SeparatorCharacter |
FieldAutoNumOut | AUTONUMOUT campo |
FieldListNum | LISTNUM campo; ListName, HasListName, ListLevel, StartingNumber |
FieldPage | PAGE campo (dependiente del diseño; evalúa a 0 en esta edición) |
FieldSection | SECTION campo |
FieldSectionPages | SECTIONPAGES campo (dependiente del diseño; evalúa a 0 en esta edición) |
FieldSeq | SEQ campo; SequenceIdentifier, BookmarkName, InsertNextNumber, ResetNumber, ResetHeadingLevel |
FieldRevNum | REVNUM campo |
NumberStyle | Enumeración de estilos de representación numérica utilizados por los niveles de lista, notas al pie/finales y números de página |