Champs de numérotation (AUTONUM, PAGE, SEQ, et plus)

Champs de numérotation (AUTONUM, PAGE, SEQ, et plus)

Champs de numérotation (AUTONUM, PAGE, SEQ et plus)

Ce guide montre comment travailler avec les champs de numérotation automatique de Word dans Aspose.Words FOSS pour .NET, et comment ils diffèrent de la numérotation basée sur les listes. Travailler avec les listes covers List, ListFormat, et ListLevel – le modèle d’objet derrière les paragraphes de listes numérotées et à puces de Word. Word possède également une famille distincte de numérotation fields qui calcule un numéro à l’emplacement du champ dans le texte, plutôt que via le formatage de listes de paragraphes : numérotation automatique juridique et de plan, compteurs de pages et de sections, numérotation liée aux listes, et séquences nommées. Elle modélise chacune comme un Field sous-classe dans le Aspose.Words.Fields espace de noms, plus le NumberStyle enum partagé par les niveaux de listes, les notes de bas de page et les notes de fin, ainsi que les numéros de page pour choisir comment un nombre est rendu.


Champs de numérotation automatique: AUTONUM, AUTONUMLGL, AUTONUMOUT

FieldAutoNum implémente le AUTONUM champ (simple sequential numbering) et expose SeparatorCharacter. FieldAutoNumLgl implements AUTONUMLGL (legal/outline-style numbering), ajoutant RemoveTrailingPeriod aux côtés de son propre SeparatorCharacter. FieldAutoNumOut implements AUTONUMOUT (outline numbering) et n’a aucune propriété propre au-delà de la base Field membres décrits dans Travailler avec les champs.


Numérotation liée à une liste avec FieldListNum

FieldListNum implémente le champ LISTNUM: ListName indique la définition de numérotation abstraite à utiliser, et HasListName indique si le code du champ fournit réellement un nom. ListLevel remplace le niveau de liste par défaut auquel le champ numérote, et StartingNumber définit la valeur à partir de laquelle la numérotation du champ commence.


Compteurs de page et de section: FieldPage, FieldSection, FieldSectionPages

FieldPage implémente le PAGE champ et FieldSectionPages implements SECTIONPAGES. Les deux dépendent d’une mise en forme de page calculée pour produire un résultat ; comme avec le NUMPAGES champ décrit dans Travailler avec les champs, les valeurs de champ dépendant de la mise en forme ne sont pas calculées dans cette édition parce qu’elle n’inclut pas de moteur de mise en forme/ rendu, ainsi ces champs évaluent à un espace réservé 0. FieldSection implements SECTION, renvoyant le numéro de section actuel du document — il ne dépend pas de la pagination et n’est pas affecté par cette limitation.


Séquences nommées avec FieldSeq

FieldSeq implémente le champ SEQ pour les séquences nommées, numérotées indépendamment (comme les figures ou les tableaux): SequenceIdentifier nomme la séquence, et BookmarkName pointe éventuellement le champ vers un élément ailleurs dans le document au lieu de l’emplacement du champ lui-même. InsertNextNumber insère le numéro suivant de la séquence sans afficher de valeur pour la position actuelle, et ResetNumber / ResetHeadingLevel réinitialisent le compteur de la séquence à un nombre précis, ou le redémarrent à un niveau de titre donné.


FieldRevNum

FieldRevNum implémente le champ REVNUM, et n’a aucune propriété propre au-delà des membres de base Field.


Mise en forme des nombres avec NumberStyle

NumberStyle est l’énumération utilisée pour les niveaux de listes, la numérotation des notes de bas de page/notes de fin et les numéros de page afin de choisir la façon dont un nombre est rendu. Les styles courants incluent Arabic, UppercaseRoman/LowercaseRoman, UppercaseLetter/LowercaseLetter, Ordinal et OrdinalText, ainsi qu’un vaste ensemble de styles spécifiques à chaque locale (Kanji, Hangul, Hanja, ThaiLetter, HindiLetter1 et bien d’autres) plus Bullet, LeadingZero, None et Custom pour un format fourni par l’appelant.


Conseils et bonnes pratiques

  • Utilisez FieldListNum lorsqu’un nombre doit référencer une définition de liste existante par son nom; utilisez FieldAutoNum/FieldAutoNumLgl/FieldAutoNumOut pour une numérotation qui n’est pas liée à un List particulier.
  • Gardez à l’esprit que FieldPage et FieldSectionPages dépendent de la mise en page, tout comme NUMPAGES — ne comptez pas sur le fait que leur Result reflète un nombre de pages réellement calculé dans cette édition.
  • Utilisez FieldSeq.BookmarkName lorsqu’un champ SEQ doit référencer un nombre défini ailleurs dans le document plutôt que d’incrémenter son propre compteur à l’emplacement du champ.
  • Définissez FieldSeq.ResetHeadingLevel lorsqu’une séquence numérotée (comme les numéros de figure) doit redémarrer à chaque nouveau chapitre ou titre de section.

Problèmes courants

ProblèmeCauseCorrection
FieldPage ou FieldSectionPages affiche toujours 0Ces champs dépendent d’une mise en page calculée, qui ne fait pas partie de cette éditionComportement attendu — utilisez la version commerciale Aspose.Words pour .NET si un nombre de pages calculé est requis
FieldListNum n’utilise pas le format de liste attenduListName ne correspond pas à une définition de numérotation abstraite présente dans le documentConfirmez le nom exact de la liste, ou vérifiez HasListName pour voir si le code du champ en fournit un.
Les numéros de FieldSeq ne redémarrent pas là où prévuResetNumber ou ResetHeadingLevel n’a pas été défini sur le champ qui doit redémarrer la séquenceDéfinissez la propriété de réinitialisation appropriée sur cette instance de FieldSeq

FAQ

Quelle est la différence entre la numérotation de listes et ces champs de numérotation?

Numérotation de liste (List, ListFormat, ListLevel, couvert dans Travailler avec les listes) formate des paragraphes entiers en tant qu’éléments de liste. Les champs de cette page calculent un numéro à un point précis du texte – pour les séquences, les compteurs de page/section, ou la numérotation automatique de style juridique – indépendant du format de liste des paragraphes.

Pourquoi un champ PAGE renvoie-t-il toujours 0?

FieldPage dépend d’une disposition de page calculée, et cette édition ne comprend pas de moteur de rendu de la disposition de page – c’est la même raison pour laquelle NUMPAGES renvoie une valeur factice.

Comment créer une séquence nommée, numérotée indépendamment, comme «Figure1», «Figure2»?

Utilisez FieldSeq avec un SequenceIdentifier cohérent (tel que "Figure") pour chaque instance de champ; chaque instance affiche le numéro suivant de cette séquence.

Comment contrôler le style de chiffre ou de lettre utilisé pour rendre un nombre?

Utilisez l’énumération NumberStyle – des valeurs comme Arabic, UppercaseRoman, LowercaseLetter et OrdinalText sélectionnent le style de rendu, ainsi que Bullet, None et Custom pour des formats non numériques ou fournis par l’appelant.


API Reference Résumé

Classe / ÉnumérationDescription
FieldAutoNumAUTONUM champ ; SeparatorCharacter
FieldAutoNumLglAUTONUMLGL champ ; RemoveTrailingPeriod, SeparatorCharacter
FieldAutoNumOutAUTONUMOUT champ
FieldListNumLISTNUM champ ; ListName, HasListName, ListLevel, StartingNumber
FieldPagePAGE champ (dépendant de la mise en forme ; évalue à 0 dans cette édition)
FieldSectionSECTION champ
FieldSectionPagesSECTIONPAGES champ (dépendant de la mise en forme ; évalue à 0 dans cette édition)
FieldSeqSEQ champ ; SequenceIdentifier, BookmarkName, InsertNextNumber, ResetNumber, ResetHeadingLevel
FieldRevNumREVNUM champ
NumberStyleÉnumération des styles de rendu des nombres utilisés pour les niveaux de listes, les notes de bas de page/notes de fin et les numéros de page

Voir aussi

 Français