Nummeringsvelden (AUTONUM, PAGE, SEQ, en meer)
Nummeringsvelden (AUTONUM, PAGE, SEQ, en meer)
Deze gids laat zien hoe je met de automatische nummeringsvelden van Word werkt in Aspose.Words FOSS voor .NET, en hoe ze verschillen van lijstgebaseerde nummering. Werken met lijsten covers List, ListFormat, en ListLevel – het objectmodel achter de genummerde en opsommingsteken-alinea’s van Word. Word heeft bovendien een aparte familie van nummering fields die een getal berekenen op de locatie van het veld in de tekst, in plaats van via alinea-lijstopmaak: juridische en outline automatische nummering, pagina- en sectietellers, lijstgekoppelde nummering, en benoemde reeksen. Het modelleert elk als een Field subklasse in de Aspose.Words.Fields namespace, plus de NumberStyle enum gedeeld door lijstniveaus, voetnoten en eindnoten, en paginanummers voor het kiezen hoe een getal wordt weergegeven.
Automatische nummeringsvelden: AUTONUM, AUTONUMLGL, AUTONUMOUT
FieldAutoNum implementeert de AUTONUM veld (eenvoudige opeenvolgende nummering) en exposeert SeparatorCharacter. FieldAutoNumLgl implements AUTONUMLGL (juridische/outline-stijl nummering), toevoegend RemoveTrailingPeriod naast zijn eigen SeparatorCharacter. FieldAutoNumOut implements AUTONUMOUT (outline-nummering) en heeft geen eigen eigenschappen buiten de basis Field leden beschreven in Werken met velden.
Lijst-gekoppelde nummering met FieldListNum
FieldListNum implementeert het LISTNUM veld: ListName noemt de abstracte nummeringsdefinitie die gebruikt moet worden, en HasListName rapporteert of de code van het veld daadwerkelijk een naam levert. ListLevel overschrijft het standaard lijstniveau waarop het veld nummert, en StartingNumber stelt de waarde in waar de nummering van het veld begint.
Pagina- en sectietellers: FieldPage, FieldSection, FieldSectionPages
FieldPage implementeert de PAGE veld en FieldSectionPages implements SECTIONPAGES. Beide zijn afhankelijk van de berekende paginalay-out om een resultaat te produceren; net als de NUMPAGES veld beschreven in Werken met velden, layout-dependent field values worden niet berekend in deze editie omdat deze geen page-layout/rendering engine bevat, dus evalueren deze velden tot een placeholder 0. FieldSection implements SECTION, retourneert het huidige sectienummer van het document – het is niet afhankelijk van paginering en wordt niet beïnvloed door die beperking.
Naamgegeven sequenties met FieldSeq
FieldSeq implementeert het SEQ veld voor benoemde, onafhankelijk genummerde sequenties (zoals figuren of tabellen): SequenceIdentifier benoemt de sequentie, en BookmarkName wijst het veld optioneel naar een item elders in het document in plaats van de eigen locatie van het veld. InsertNextNumber voegt het volgende nummer in de sequentie in zonder een waarde voor de huidige positie weer te geven, en ResetNumber / ResetHeadingLevel resetten de teller van de sequentie naar een specifiek getal, of herstarten deze op een specifiek kopniveau.
FieldRevNum
FieldRevNum implementeert het REVNUM veld, en heeft geen eigen eigenschappen behalve de basis Field leden.
Getallen opmaken met NumberStyle
NumberStyle is de enum die wordt gebruikt over lijstniveaus, voetnoot/eindnoot nummering, en paginanummers om te selecteren hoe een getal wordt weergegeven. Veelvoorkomende stijlen omvatten Arabic, UppercaseRoman / LowercaseRoman, UppercaseLetter / LowercaseLetter, Ordinal, en OrdinalText, naast een grote verzameling locale-specifieke stijlen (Kanji, Hangul, Hanja, ThaiLetter, HindiLetter1, en vele anderen) plus Bullet, LeadingZero, None, en Custom voor een door de aanroeper opgegeven formaat.
Tips en best practices
- Gebruik
FieldListNumwanneer een getal moet verwijzen naar een bestaande lijstdefinitie op naam; gebruikFieldAutoNum/FieldAutoNumLgl/FieldAutoNumOutvoor nummering die niet gekoppeld is aan een specifiekeList. - Onthoud dat
FieldPageenFieldSectionPageslay-outafhankelijk zijn, net zoalsNUMPAGESdat is – vertrouw er niet op dat hunResulteen werkelijk berekende paginatelling in deze editie weergeven. - Gebruik
FieldSeq.BookmarkNamewanneer een SEQ field een getal moet refereren dat elders in het document is gedefinieerd in plaats van zijn eigen teller op de plaats van het veld te verhogen. - Stel
FieldSeq.ResetHeadingLevelin wanneer een genummerde reeks (zoals figuurnummers) opnieuw moet beginnen bij elk nieuw hoofdstuk of sectiekop.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
FieldPage of FieldSectionPages toont altijd 0 | Deze velden zijn afhankelijk van de berekende pagina-indeling, die niet tot deze editie behoort | Verwacht gedrag – gebruik de commerciële Aspose.Words voor .NET indien een berekende paginatelling vereist is |
FieldListNum gebruikt niet de verwachte lijstopmaak | ListName komt niet overeen met een abstracte nummeringsdefinitie die in het document aanwezig is | Bevestig de exacte lijstnaam, of controleer HasListName om te zien of de code van het veld er überhaupt één levert |
FieldSeq-nummers starten niet opnieuw waar verwacht | ResetNumber of ResetHeadingLevel is niet ingesteld op het veld dat de reeks zou moeten herstarten | Stel de juiste reset-eigenschap in op die FieldSeq-instantie |
FAQ
Wat is het verschil tussen lijstnummering en deze nummeringsvelden?
Lijstnummering (List, ListFormat, ListLevel, behandeld in Werken met lijsten) formatteert hele alinea’s als lijstitems. De velden op deze pagina berekenen een getal op een specifiek punt in de tekst – voor reeksen, pagina-/sectietellers, of juridisch-achtige automatische nummering – onafhankelijk van de alinea-lijstopmaak.
Waarom evalueert een PAGE-veld altijd tot 0?
FieldPage hangt af van de berekende paginalay-out, en deze editie bevat geen page-layout/rendering engine – om dezelfde reden evalueert NUMPAGES tot een placeholder-waarde.
Hoe maak ik een benoemde, onafhankelijk genummerde reeks zoals “Figure 1”, “Figure 2”?
Gebruik FieldSeq met een consistente SequenceIdentifier (bijvoorbeeld "Figure") voor elke veldinstantie; elk toont het volgende nummer in die reeks.
Hoe kan ik bepalen in welke cijfer- of letterstijl een getal wordt weergegeven?
Gebruik de NumberStyle enum – waarden zoals Arabic, UppercaseRoman, LowercaseLetter en OrdinalText selecteren de weergavestijl, naast Bullet, None en Custom voor niet-numerieke of door de aanroeper opgegeven formaten.
API Reference Samenvatting
| Klasse / Enum | Beschrijving |
|---|---|
FieldAutoNum | AUTONUM veld; SeparatorCharacter |
FieldAutoNumLgl | AUTONUMLGL veld; RemoveTrailingPeriod, SeparatorCharacter |
FieldAutoNumOut | AUTONUMOUT veld |
FieldListNum | LISTNUM veld; ListName, HasListName, ListLevel, StartingNumber |
FieldPage | PAGE veld (lay-outafhankelijk; evalueert tot 0 in deze editie) |
FieldSection | SECTION veld |
FieldSectionPages | SECTIONPAGES veld (lay-outafhankelijk; evalueert tot 0 in deze editie) |
FieldSeq | SEQ veld; SequenceIdentifier, BookmarkName, InsertNextNumber, ResetNumber, ResetHeadingLevel |
FieldRevNum | REVNUM veld |
NumberStyle | Enum van nummerweergavestijlen die worden gebruikt voor lijstniveaus, voet- en eindnoten, en paginanummers |