Pola numeracji (AUTONUM, PAGE, SEQ i inne)

Pola numeracji (AUTONUM, PAGE, SEQ i inne)

Pola numeracji (AUTONUM, PAGE, SEQ i inne)

Ten przewodnik pokazuje, jak pracować z polami automatycznego numerowania w Aspose.Words FOSS dla .NET, oraz jak różnią się od numeracji opartej na listach. Praca z listami covers List, ListFormat, oraz ListLevel – model obiektowy stojący za numerowanymi i wypunktowanymi akapitami list w programie Word. Word posiada także oddzielną rodzinę numeracji fields która oblicza numer w miejscu pola w tekście, zamiast poprzez formatowanie listy akapitu: automatyczne numerowanie prawne i konspektowe, liczniki stron i sekcji, numerowanie powiązane z listą oraz nazwane sekwencje. Modeluje każdą z nich jako Field podklasę w Aspose.Words.Fields przestrzeń nazw, plus NumberStyle enumeracja współdzielona przez poziomy list, przypisy i przypisy końcowe oraz numery stron, służąca do wyboru sposobu renderowania liczby.


Pola automatycznej numeracji: AUTONUM, AUTONUMLGL, AUTONUMOUT

FieldAutoNum implementuje AUTONUM pole (proste numerowanie sekwencyjne) i udostępnia SeparatorCharacter. FieldAutoNumLgl implements AUTONUMLGL (numeracja prawna/zgodna ze stylem konspektu), dodając RemoveTrailingPeriod obok własnego SeparatorCharacter. FieldAutoNumOut implements AUTONUMOUT (numeracja konspektowa) i nie posiada własnych właściwości poza podstawowym Field członkami opisanymi w Praca z polami.


Numeracja powiązana z listą przy użyciu FieldListNum

FieldListNum implementuje pole LISTNUM: ListName określa nazwę abstrakcyjnej definicji numeracji do użycia, a HasListName informuje, czy kod pola rzeczywiście podaje nazwę. ListLevel nadpisuje domyślny poziom listy, na którym pole numeruje, a StartingNumber ustawia wartość, od której rozpoczyna się numeracja pola.


Liczniki stron i sekcji: FieldPage, FieldSection, FieldSectionPages

FieldPage implementuje PAGE pole i FieldSectionPages implements SECTIONPAGES. Oba zależą od obliczonego układu strony, aby uzyskać wynik; podobnie jak NUMPAGES pole opisane w Praca z polami, wartości pól zależnych od układu nie są obliczane w tej edycji, ponieważ nie zawiera ona silnika układu/renderingu strony, więc te pola ocenia się jako symbol zastępczy 0. FieldSection implements SECTION, zwracając bieżący numer sekcji dokumentu — nie zależy od paginacji i nie jest przez to ograniczenie dotknięty.


Nazwane sekwencje z FieldSeq

FieldSeq implementuje pole SEQ dla nazwanych, niezależnie numerowanych sekwencji (takich jak rysunki lub tabele): SequenceIdentifier nadaje nazwę sekwencji, a BookmarkName opcjonalnie kieruje pole do elementu w innym miejscu dokumentu zamiast do własnej lokalizacji pola. InsertNextNumber wstawia kolejny numer w sekwencji bez wyświetlania wartości dla bieżącej pozycji, a ResetNumber / ResetHeadingLevel resetują licznik sekwencji do określonej liczby lub uruchamiają go ponownie na określonym poziomie nagłówka.


FieldRevNum

FieldRevNum implementuje pole REVNUM i nie posiada własnych właściwości poza bazowymi członkami Field.


Formatowanie liczb przy użyciu NumberStyle

NumberStyle jest wyliczeniem używanym na różnych poziomach list, w numeracji przypisów/końcowych notatek oraz numeracji stron, aby określić sposób renderowania liczby. Popularne style obejmują Arabic, UppercaseRoman / LowercaseRoman, UppercaseLetter / LowercaseLetter, Ordinal i OrdinalText, wraz z dużym zestawem stylów specyficznych dla lokalizacji (Kanji, Hangul, Hanja, ThaiLetter, HindiLetter1 i wiele innych) oraz Bullet, LeadingZero, None i Custom dla formatu dostarczonego przez wywołującego.


Wskazówki i najlepsze praktyki

  • Użyj FieldListNum, gdy liczba musi odwoływać się do istniejącej definicji listy po nazwie; użyj FieldAutoNum/FieldAutoNumLgl/FieldAutoNumOut do numeracji, która nie jest powiązana z konkretnym List.
  • Pamiętaj, że FieldPage i FieldSectionPages zależą od układu, tak samo jak NUMPAGES — nie polegaj na tym, że ich Result odzwierciedla rzeczywistą obliczoną liczbę stron w tej edycji.
  • Użyj FieldSeq.BookmarkName, gdy pole SEQ musi odwoływać się do liczby zdefiniowanej w innym miejscu dokumentu, zamiast zwiększać własny licznik w miejscu pola.
  • Ustaw FieldSeq.ResetHeadingLevel, gdy numerowana sekwencja (np. numery rysunków) ma być resetowana przy każdym nowym rozdziale lub nagłówku sekcji.

Typowe problemy

ProblemPrzyczynaNaprawa
FieldPage lub FieldSectionPages zawsze wyświetla 0Te pola zależą od obliczonego układu strony, który nie jest częścią tej edycjiOczekiwane zachowanie – użyj wersji komercyjnej Aspose.Words dla .NET jeśli wymagana jest obliczona liczba stron
FieldListNum nie używa oczekiwanego formatowania listyListName nie pasuje do definicji numeracji abstrakcyjnej obecnej w dokumenciePotwierdź dokładną nazwę listy lub sprawdź HasListName, aby zobaczyć, czy kod pola w ogóle dostarcza taką nazwę
Liczby FieldSeq nie restartują się tam, gdzie się tego oczekujeResetNumber lub ResetHeadingLevel nie zostały ustawione w polu, które powinno zrestartować sekwencjęUstaw odpowiednią właściwość resetowania w tej instancji FieldSeq

FAQ

Jaka jest różnica między numeracją list a tymi polami numeracji?

Numeracja listy (List, ListFormat, ListLevel, omówiono w Praca z listami) formatuje całe akapity jako elementy listy. Pola na tej stronie obliczają numer w określonym miejscu w tekście – dla sekwencji, liczników stron/sekcji lub automatycznego numerowania w stylu prawnym – niezależnie od formatowania listy w akapicie.

Dlaczego pole PAGE zawsze zwraca 0?

FieldPage zależy od obliczonego układu strony, a ta edycja nie zawiera silnika układu/renderowania stron — z tego samego powodu NUMPAGES ocenia się jako wartość zastępcza.

Jak utworzyć nazwany, niezależnie numerowany ciąg, taki jak „Figure 1”, „Figure 2”?

Użyj FieldSeq z konsekwentnym SequenceIdentifier (na przykład "Figure") w każdej instancji pola; każdy z nich wyświetla kolejny numer w tej sekwencji.

Jak kontrolować, w jakim stylu cyfr lub liter liczba jest renderowana?

Użyj wyliczenia NumberStyle — wartości takie jak Arabic, UppercaseRoman, LowercaseLetter i OrdinalText wybierają styl renderowania, wraz z Bullet, None i Custom dla formatów nienumerycznych lub dostarczonych przez wywołującego.


API Reference Podsumowanie

Klasa / WyliczenieOpis
FieldAutoNumAUTONUM pole; SeparatorCharacter
FieldAutoNumLglAUTONUMLGL pole; RemoveTrailingPeriod, SeparatorCharacter
FieldAutoNumOutAUTONUMOUT pole
FieldListNumLISTNUM pole; ListName, HasListName, ListLevel, StartingNumber
FieldPagePAGE pole (zależne od układu; zwraca 0 w tej edycji)
FieldSectionSECTION pole
FieldSectionPagesSECTIONPAGES pole (zależne od układu; zwraca 0 w tej edycji)
FieldSeqSEQ pole; SequenceIdentifier, BookmarkName, InsertNextNumber, ResetNumber, ResetHeadingLevel
FieldRevNumREVNUM pole
NumberStyleEnum stylów renderowania liczb używanych w poziomach list, przypisach/stopkach i numeracji stron

Zobacz także

 Polski