Nummerierungsfelder (AUTONUM, PAGE, SEQ und Mehr)

Nummerierungsfelder (AUTONUM, PAGE, SEQ und Mehr)

Nummerierungsfelder (AUTONUM, PAGE, SEQ und Weitere)

Dieser Leitfaden zeigt, wie man mit den automatischen Nummerierungsfeldern von Word in Aspose.Words FOSS für .NET, und wie sie sich von listenbasierter Nummerierung unterscheiden. Arbeiten mit Listen covers List, ListFormat, und ListLevel – das Objektmodell hinter den nummerierten und Aufzählungslisten-Absätzen von Word. Word hat außerdem eine separate Familie von Nummerierung fields die eine Nummer an der Feldposition im Text berechnen, anstatt über die Absatzlistenformatierung: juristische und Gliederungs-Auto-Nummerierung, Seiten- und Abschnittszähler, listenverbundene Nummerierung und benannte Sequenzen. Sie modelliert jede als ein Field Unterklasse in der Aspose.Words.Fields Namespace, plus dem NumberStyle Enum, das von Listenebenen, Fußnoten und Endnoten sowie Seitenzahlen gemeinsam genutzt wird, um zu bestimmen, wie eine Zahl dargestellt wird.


Auto-Nummerierungsfelder: AUTONUM, AUTONUMLGL, AUTONUMOUT

FieldAutoNum implementiert das AUTONUM Feld (einfache sequenzielle Nummerierung) und stellt bereit SeparatorCharacter. FieldAutoNumLgl implements AUTONUMLGL (legal/outline-style numbering), fügt hinzu RemoveTrailingPeriod neben seinem eigenen SeparatorCharacter. FieldAutoNumOut implements AUTONUMOUT (outline numbering) und hat keine eigenen Eigenschaften über die Basis hinaus Field Mitglieder, die in Arbeiten mit Feldern.


Listenverbundene Nummerierung mit FieldListNum

FieldListNum implementiert das LISTNUM Feld: ListName benennt die zu verwendende abstrakte Nummerierungsdefinition, und HasListName gibt an, ob der Feldcode tatsächlich einen Namen liefert. ListLevel überschreibt die Standard-Listenebene, auf der das Feld nummeriert, und StartingNumber legt den Wert fest, von dem die Feldnummerierung beginnt.


Seiten- und Abschnittszähler: FieldPage, FieldSection, FieldSectionPages

FieldPage implementiert das PAGE Feld und FieldSectionPages implements SECTIONPAGES. Beide hängen vom berechneten Seitenlayout ab, um ein Ergebnis zu erzeugen; wie beim NUMPAGES Feld beschrieben in Arbeiten mit Feldern, layoutabhängige Feldwerte werden in dieser Ausgabe nicht berechnet, da sie keine Seitenlayout-/Rendering-Engine enthält, sodass diese Felder zu einem Platzhalter ausgewertet werden 0. FieldSection implements SECTION, gibt die aktuelle Abschnittsnummer des Dokuments zurück – sie hängt nicht von der Seitennummerierung ab und ist von dieser Einschränkung nicht betroffen.


Benannte Sequenzen mit FieldSeq

FieldSeq implementiert das SEQ-Feld für benannte, unabhängig nummerierte Sequenzen (wie Abbildungen oder Tabellen): SequenceIdentifier benennt die Sequenz, und BookmarkName weist das Feld optional auf ein Element an anderer Stelle im Dokument hin, anstatt auf den eigenen Ort des Feldes. InsertNextNumber fügt die nächste Nummer in der Sequenz ein, ohne einen Wert für die aktuelle Position anzuzeigen, und ResetNumber / ResetHeadingLevel setzen den Zähler der Sequenz auf eine bestimmte Zahl zurück oder starten ihn bei einer bestimmten Überschriftenebene neu.


FieldRevNum

FieldRevNum implementiert das REVNUM-Feld und hat keine eigenen Eigenschaften außer den Basis-Field-Mitgliedern.


Zahlen formatieren mit NumberStyle

NumberStyle ist das Enum, das über Listenniveaus, Fuß-/Endnoten-Nummerierung und Seitenzahlen hinweg verwendet wird, um auszuwählen, wie eine Zahl dargestellt wird. Gängige Stile umfassen Arabic, UppercaseRoman / LowercaseRoman, UppercaseLetter / LowercaseLetter, Ordinal und OrdinalText, zusammen mit einer großen Menge lokalspezifischer Stile (Kanji, Hangul, Hanja, ThaiLetter, HindiLetter1 und vielen anderen) sowie Bullet, LeadingZero, None und Custom für ein vom Aufrufer bereitgestelltes Format.


Tipps und bewährte Vorgehensweisen

  • Verwenden Sie FieldListNum, wenn eine Zahl eine vorhandene Listendefinition per Name referenzieren muss; benutzen Sie FieldAutoNum/FieldAutoNumLgl/FieldAutoNumOut für Nummerierungen, die nicht an ein bestimmtes List gebunden sind.
  • Denken Sie daran, dass FieldPage und FieldSectionPages layoutabhängig sind, genauso wie NUMPAGES – verlassen Sie sich nicht darauf, dass ihr Result in dieser Ausgabe eine tatsächlich berechnete Seitenzahl widerspiegelt.
  • Verwenden Sie FieldSeq.BookmarkName, wenn ein SEQ-Feld eine an anderer Stelle im Dokument definierte Zahl referenzieren muss, anstatt seinen eigenen Zähler an der Feldposition zu erhöhen.
  • Setzen Sie FieldSeq.ResetHeadingLevel, wenn eine nummerierte Sequenz (wie Abbildungsnummern) bei jedem neuen Kapitel- oder Abschnittsüberschrift neu beginnen soll.

Häufige Probleme

ProblemUrsacheLösung
FieldPage oder FieldSectionPages zeigt immer 0Diese Felder hängen vom berechneten Seitenlayout ab, das nicht Teil dieser Ausgabe istErwartetes Verhalten – verwenden Sie die kommerzielle Aspose.Words für .NET wenn eine berechnete Seitenzahl erforderlich ist
FieldListNum verwendet nicht die erwartete ListformatierungListName stimmt nicht mit einer im Dokument vorhandenen abstrakten Nummerierungsdefinition übereinBestätigen Sie den genauen Listennamen, oder prüfen Sie HasListName, um zu sehen, ob der Feldcode überhaupt einen liefert
FieldSeq-Nummern starten nicht dort, wo sie erwartet werdenResetNumber oder ResetHeadingLevel wurde nicht im Feld gesetzt, das die Sequenz neu starten sollteSetzen Sie die entsprechende Reset-Eigenschaft auf diese FieldSeq-Instanz

FAQ

Was ist der Unterschied zwischen Listennummerierung und diesen Nummerierungsfeldern?

Listennummerierung (List, ListFormat, ListLevel, abgedeckt in Arbeiten mit Listen) formatiert ganze Absätze als Listenelemente. Die Felder auf dieser Seite berechnen eine Nummer an einer bestimmten Stelle im Text – für Sequenzen, Seiten-/Abschnittszähler oder rechtlich-artige Auto-Nummerierung – unabhängig von der Absatzlistenformatierung.

Warum wertet ein PAGE-Feld immer zu 0 aus?

FieldPage hängt vom berechneten Seitenlayout ab, und diese Ausgabe enthält keine Seitenlayout-/Render-Engine – aus demselben Grund wertet NUMPAGES zu einem Platzhalterwert aus.

Wie erstelle ich eine benannte, unabhängig nummerierte Sequenz wie “Abbildung 1”, “Abbildung 2”?

Verwenden Sie FieldSeq mit einem konsistenten SequenceIdentifier (z.B. "Figure") über jede Feldinstanz hinweg; jede Anzeige gibt die nächste Nummer in dieser Sequenz aus.

Wie kann ich steuern, in welchem Zahlen- oder Buchstabenstil eine Nummer dargestellt wird?

Verwenden Sie das NumberStyle-Enum – Werte wie Arabic, UppercaseRoman, LowercaseLetter und OrdinalText wählen den Renderstil aus, zusammen mit Bullet, None und Custom für nicht-numerische oder vom Aufrufer bereitgestellte Formate.


API Reference Zusammenfassung

Klasse / EnumBeschreibung
FieldAutoNumAUTONUM field; SeparatorCharacter
FieldAutoNumLglAUTONUMLGL field; RemoveTrailingPeriod, SeparatorCharacter
FieldAutoNumOutAUTONUMOUT Feld
FieldListNumLISTNUM Feld; ListName, HasListName, ListLevel, StartingNumber
FieldPagePAGE Feld (layoutabhängig; ergibt 0 in dieser Ausgabe)
FieldSectionSECTION Feld
FieldSectionPagesSECTIONPAGES Feld (layoutabhängig; ergibt 0 in dieser Ausgabe)
FieldSeqSEQ Feld; SequenceIdentifier, BookmarkName, InsertNextNumber, ResetNumber, ResetHeadingLevel
FieldRevNumREVNUM Feld
NumberStyleEnum der Zahlenformatierungsstile, die für Listenniveaus, Fußnoten/Endnoten und Seitenzahlen verwendet werden

Siehe auch

 Deutsch