Поля нумерації (AUTONUM, PAGE, SEQ та інші)

Поля нумерації (AUTONUM, PAGE, SEQ та інші)

Поля нумерації (AUTONUM, PAGE, SEQ та інші)

Цей посібник показує, як працювати з полями автоматичної нумерації Word у Aspose.Words FOSS для .NET, і як вони відрізняються від нумерації, заснованої на списках. Робота зі списками covers List, ListFormat, і ListLevel – модель об’єктів, що стоїть за нумерованими та маркованими абзацами списків Word. Word також має окрему сімейство нумерації fields яке обчислює номер у місці поля в тексті, а не через форматування абзацу списку: юридична та контурна автонумерація, лічильники сторінок і розділів, нумерація, пов’язана зі списком, та іменовані послідовності. Вона моделює кожну як Field підклас у the Aspose.Words.Fields namespace, а також NumberStyle enum, спільний між рівнями списків, виносками та кінцевими виносками, і номерами сторінок для вибору способу відображення числа.


Поля автонумерації: AUTONUM, AUTONUMLGL, AUTONUMOUT

FieldAutoNum реалізує AUTONUM поле (просте послідовне нумерування) і надає SeparatorCharacter. FieldAutoNumLgl implements AUTONUMLGL (legal/outline-style нумерація), додаючи RemoveTrailingPeriod поряд зі своїм SeparatorCharacter. FieldAutoNumOut implements AUTONUMOUT (outline нумерація) і не має жодних власних властивостей, крім базових Field члени, описані в Робота з полями.


Нумерація, пов’язана зі списком, за допомогою FieldListNum

FieldListNum реалізує поле LISTNUM: ListName називає абстрактне визначення нумерації, яке слід використовувати, а HasListName повідомляє, чи код поля фактично надає ім’я. ListLevel перевизначає типовий рівень списку, на якому поле нумерує, а StartingNumber встановлює значення, з якого починається нумерація поля.


Лічильники сторінок і розділів: FieldPage, FieldSection, FieldSectionPages

FieldPage реалізує PAGE поле і FieldSectionPages implements SECTIONPAGES. Обидва залежать від обчисленого макету сторінки, щоб отримати результат; так само як і NUMPAGES поле, описане в Робота з полями, значення полів, що залежать від макету, не обчислюються у цьому випуску, оскільки він не включає рушій макету/рендерингу, тому ці поля оцінюються як заповнювач 0. FieldSection implements SECTION, повертаючи поточний номер розділу документа — він не залежить від пагінації і не підлягає цьому обмеженню.


Іменовані послідовності з FieldSeq

FieldSeq реалізує поле SEQ для іменованих, незалежно нумерованих послідовностей (наприклад, рисунків або таблиць): SequenceIdentifier називає послідовність, а BookmarkName за бажанням вказує поле на елемент в іншій частині документа замість власного розташування поля. InsertNextNumber вставляє наступний номер у послідовність без відображення значення для поточної позиції, а ResetNumber / ResetHeadingLevel скидають лічильник послідовності до вказаного числа або перезапускають його на певному рівні заголовка.


FieldRevNum

FieldRevNum реалізує поле REVNUM і не має власних властивостей, окрім базових членів Field.


Форматування чисел за допомогою NumberStyle

NumberStyle — це перелік (enum), який використовується на різних рівнях списків, нумерації виносок/кінцевих нот, а також номерів сторінок, щоб вибрати спосіб відображення числа. Загальні стилі включають Arabic, UppercaseRoman / LowercaseRoman, UppercaseLetter / LowercaseLetter, Ordinal і OrdinalText, поряд із великим набором локалізованих стилів (Kanji, Hangul, Hanja, ThaiLetter, HindiLetter1 та багатьох інших) плюс Bullet, LeadingZero, None і Custom для формату, що передається викликачем.


Поради та кращі практики

  • Використовуйте FieldListNum, коли номер має посилатися на існуюче визначення списку за назвою; використовуйте FieldAutoNum/FieldAutoNumLgl/FieldAutoNumOut для нумерації, яка не прив’язана до конкретного List.
  • Пам’ятайте, що FieldPage і FieldSectionPages залежать від макету, так само як NUMPAGES — не покладайтеся на те, що їх Result відображає реальну підраховану кількість сторінок у цьому випуску.
  • Використовуйте FieldSeq.BookmarkName, коли поле SEQ має посилатися на номер, визначений в іншому місці документа, а не збільшувати власний лічильник у позиції поля.
  • Встановіть FieldSeq.ResetHeadingLevel, коли нумерована послідовність (наприклад, номери рисунків) повинна перезапускатися на кожному новому розділі або заголовку секції.

Типові проблеми

ПроблемаПричинаВиправлення
FieldPage або FieldSectionPages завжди показує 0Ці поля залежать від обчисленого макету сторінки, який не є частиною цього випускуОчікувана поведінка — використовуйте комерційну Aspose.Words для .NET якщо потрібен обчислений підрахунок сторінок
FieldListNum не використовує очікуване форматування спискуListName не відповідає абстрактному визначенню нумерації, присутньому в документіПідтвердьте точну назву списку або перевірте HasListName, щоб дізнатися, чи забезпечує код поля його взагалі
Номери FieldSeq не перезапускаються там, де очікувалосяResetNumber або ResetHeadingLevel не були встановлені у полі, яке має перезапускати послідовністьВстановіть відповідну властивість скидання для цього екземпляра FieldSeq

FAQ

У чому різниця між нумерацією списків і цими полями нумерації?

Нумерація списку (List, ListFormat, ListLevel, розглянуто в Робота зі списками) форматує цілі абзаци як елементи списку. Поля на цій сторінці обчислюють число в певній точці тексту — для послідовностей, лічильників сторінок/розділів або юридичного автонумерування — незалежно від форматування списку абзаців.

Чому поле PAGE завжди оцінюється як 0?

FieldPage залежить від обчисленого макету сторінки, і це видання не включає движок макету/рендерингу сторінок — саме тому NUMPAGES оцінюється як заповнювальне значення.

Як створити названу, незалежно нумеровану послідовність типу «Figure 1», «Figure 2»?

Використовуйте FieldSeq з послідовним SequenceIdentifier (наприклад, "Figure") у всіх екземплярах поля; кожен показує наступне число в цій послідовності.

Як керувати тим, у якому числовому чи буквальному стилі число відображається?

Використовуйте enum NumberStyle — значення, такі як Arabic, UppercaseRoman, LowercaseLetter та OrdinalText, вибирають стиль рендерингу, а також Bullet, None і Custom для нечислових або заданих користувачем форматів.


API Reference Підсумок

Клас / ПереліченняОпис
FieldAutoNumAUTONUM поле; SeparatorCharacter
FieldAutoNumLglAUTONUMLGL поле; RemoveTrailingPeriod, SeparatorCharacter
FieldAutoNumOutAUTONUMOUT поле
FieldListNumLISTNUM поле; ListName, HasListName, ListLevel, StartingNumber
FieldPagePAGE поле (залежить від макету; оцінюється як 0 у цьому випуску)
FieldSectionSECTION поле
FieldSectionPagesSECTIONPAGES поле (залежить від макету; оцінюється як 0 у цьому випуску)
FieldSeqSEQ поле; SequenceIdentifier, BookmarkName, InsertNextNumber, ResetNumber, ResetHeadingLevel
FieldRevNumREVNUM поле
NumberStyleПерелік стилів відображення номерів, що використовуються рівнями списків, виносками/кінцевими виносками та номерами сторінок

Дивіться також

 Українська