Číslování polí (AUTONUM, PAGE, SEQ a další)

Číslování polí (AUTONUM, PAGE, SEQ a další)

Číslovací pole (AUTONUM, PAGE, SEQ a další)

Tento průvodce ukazuje, jak pracovat s automatickými číslovacími poli ve Wordu Aspose.Words FOSS pro .NET, a jak se liší od číslování založeného na seznamech. Práce se seznamy covers List, ListFormat, a ListLevel – objektový model stojící za očíslovanými a odrážkovými odstavci seznamů ve Wordu. Word má také samostatnou rodinu číslování fields které vypočítávají číslo na místě pole v textu, spíše než prostřednictvím formátování odstavcových seznamů: právní a osnovové automatické číslování, počítadla stránek a sekcí, číslování propojené se seznamem a pojmenované sekvence. Modeluje každé jako Field podtřídu v the Aspose.Words.Fields namespace, plus NumberStyle enum sdílený úrovněmi seznamů, poznámkami pod čarou a koncovými poznámkami a čísly stránek pro výběr, jak má být číslo vykresleno.


Pole automatického číslování: AUTONUM, AUTONUMLGL, AUTONUMOUT

FieldAutoNum implementuje AUTONUM pole (jednoduché sekvenční číslování) a vystavuje SeparatorCharacter. FieldAutoNumLgl implements AUTONUMLGL (legal/outline-style numbering), přidává RemoveTrailingPeriod vedle svého vlastního SeparatorCharacter. FieldAutoNumOut implements AUTONUMOUT (outline numbering) a nemá žádné vlastní vlastnosti nad rámec základního Field členy popsanými v Práce s poli.


Číslování propojené se seznamem pomocí FieldListNum

FieldListNum implementuje pole LISTNUM: ListName pojmenovává abstraktní definici číslování, která se má použít, a HasListName uvádí, zda kód pole skutečně poskytuje název. ListLevel přepisuje výchozí úroveň seznamu, na které pole čísluje, a StartingNumber nastavuje hodnotu, od které číslování pole začíná.


Počítadla stránek a sekcí: FieldPage, FieldSection, FieldSectionPages

FieldPage implementuje PAGE pole a FieldSectionPages implements SECTIONPAGES. Oba závisí na vypočteném rozložení stránky, aby vytvořily výsledek; jako u NUMPAGES pole popsané v Práce s poli, hodnoty polí závislé na rozvržení nejsou v této edici vypočítány, protože neobsahuje engine pro rozvržení/rendering stránek, takže tato pole vyhodnocují jako placeholder 0. FieldSection implements SECTION, vrací aktuální číslo sekce dokumentu – nezávisí na stránkování a není tímto omezením ovlivněno.


Pojmenované sekvence s FieldSeq

FieldSeq implementuje pole SEQ pro pojmenované, nezávisle číslované sekvence (např. obrázky nebo tabulky): SequenceIdentifier pojmenuje sekvenci a BookmarkName volitelně nasměruje pole na položku jinde v dokumentu místo na vlastní umístění pole. InsertNextNumber vloží další číslo v sekvenci, aniž by zobrazilo hodnotu pro aktuální pozici, a ResetNumber / ResetHeadingLevel resetují čítač sekvence na konkrétní číslo nebo ji restartují na konkrétní úroveň nadpisu.


FieldRevNum

FieldRevNum implementuje pole REVNUM a nemá žádné vlastní vlastnosti mimo základní členy Field.


Formátování čísel s NumberStyle

NumberStyle je výčtový typ (enum) používaný napříč úrovněmi seznamů, číslováním poznámek pod čarou/koncových poznámek a čísly stránek k výběru způsobu vykreslení čísla. Běžné styly zahrnují Arabic, UppercaseRoman / LowercaseRoman, UppercaseLetter / LowercaseLetter, Ordinal a OrdinalText, spolu s velkou sadou lokálně specifických stylů (Kanji, Hangul, Hanja, ThaiLetter, HindiLetter1 a mnoho dalších) plus Bullet, LeadingZero, None a Custom pro formát dodaný volajícím.


Tipy a osvědčené postupy

  • Použijte FieldListNum, když číslo musí odkazovat na existující definici seznamu podle názvu; použijte FieldAutoNum/FieldAutoNumLgl/FieldAutoNumOut pro číslování, které není svázáno s konkrétním List.
  • Pamatujte, že FieldPage a FieldSectionPages jsou závislé na rozvržení, stejně jako NUMPAGES – nespoléhejte se na to, že jejich Result bude odrážet skutečný vypočtený počet stránek v této edici.
  • Použijte FieldSeq.BookmarkName, když pole SEQ potřebuje odkazovat na číslo definované jinde v dokumentu místo toho, aby zvyšovalo svůj vlastní čítač na místě pole.
  • Nastavte FieldSeq.ResetHeadingLevel, když má číslovaná sekvence (např. čísla obrázků) začít znovu u každé nové kapitoly nebo nadpisu sekce.

Běžné problémy

ProblémPříčinaOprava
FieldPage nebo FieldSectionPages vždy zobrazí 0Tyto pole závisí na vypočteném rozložení stránky, které není součástí této ediceOčekávané chování – použijte komerční Aspose.Words pro .NET pokud je vyžadován vypočtený počet stránek
FieldListNum nepoužívá očekávané formátování seznamuListName neodpovídá abstraktní definici číslování, která je v dokumentu přítomnaPotvrďte přesný název seznamu, nebo zkontrolujte HasListName, abyste zjistili, zda kód pole vůbec poskytuje nějaký
Čísla FieldSeq se nerestartují tam, kde se očekáváResetNumber nebo ResetHeadingLevel nebylo nastaveno na poli, které by mělo sekvenci restartovatNastavte příslušnou vlastnost resetu na této FieldSeq instanci

FAQ

Jaký je rozdíl mezi číslováním seznamu a těmito číslovacími poli?

Číslování seznamu (List, ListFormat, ListLevel, pokryto v Práce se seznamy) formátuje celé odstavce jako položky seznamu. Pole na této stránce vypočítávají číslo na konkrétním místě v textu – pro sekvence, číslování stránek/sekcí nebo právní styl automatického číslování – nezávisle na formátování odstavců v seznamu.

Proč pole PAGE vždy vyhodnocuje na 0?

FieldPage závisí na vypočteném rozložení stránky a tato edice neobsahuje engine pro rozvržení/renderování stránek – stejný důvod, proč NUMPAGES vyhodnocuje na placeholder hodnotu.

Jak vytvořit pojmenovanou, nezávisle číslovanou sekvenci jako „Figure 1“, „Figure 2“?

Použijte FieldSeq s konzistentním SequenceIdentifier (například "Figure") u každé instance pole; každá z nich zobrazí další číslo v této sekvenci.

Jak mohu ovládat, ve kterém číselném nebo písmenovém stylu je číslo vykresleno?

Použijte výčet NumberStyle – hodnoty jako Arabic, UppercaseRoman, LowercaseLetter a OrdinalText vybírají styl vykreslování, spolu s Bullet, None a Custom pro nenumerické nebo uživatelem dodané formáty.


API Reference Shrnutí

Třída / EnumPopis:
FieldAutoNumAUTONUM pole; SeparatorCharacter
FieldAutoNumLglAUTONUMLGL pole; RemoveTrailingPeriod, SeparatorCharacter
FieldAutoNumOutAUTONUMOUT pole
FieldListNumLISTNUM pole; ListName, HasListName, ListLevel, StartingNumber
FieldPagePAGE pole (závislé na rozložení; vyhodnocuje se na 0 v tomto vydání)
FieldSectionSECTION pole
FieldSectionPagesSECTIONPAGES pole (závislé na rozvržení; v této edici se vyhodnocuje na 0)
FieldSeqSEQ pole; SequenceIdentifier, BookmarkName, InsertNextNumber, ResetNumber, ResetHeadingLevel
FieldRevNumREVNUM pole
NumberStyleVýčet stylů číslování používaných úrovněmi seznamů, poznámkami pod čarou/pod koncem a čísly stránek

Viz také:

 Čeština