Câmpuri de numerotare (AUTONUM, PAGE, SEQ și altele)
Câmpuri de numerotare (AUTONUM, PAGE, SEQ și altele)
Acest ghid arată cum să lucraţi cu câmpurile de numerotare automată ale Word în Aspose.Words FOSS pentru .NET, și cum diferă de numerotarea bazată pe liste. Lucrul cu listele covers List, ListFormat, și ListLevel – modelul de obiecte din spatele paragrafelor cu liste numerotate și cu marcatori din Word. Word are, de asemenea, o familie separată de numerotare fields care calculează un număr la locaţia câmpului în text, în loc de a folosi formatarea de listă a paragrafelor: numerotare automată legală și de contur, contoare de pagină și de secţiune, numerotare legată de listă și secvenţe numite. O modelează pe fiecare ca un Field subclasă în the Aspose.Words.Fields spațiu de nume, plus the NumberStyle enum partajat de nivelurile listelor, notele de subsol și notele de sfârșit, și numerele de pagină pentru a alege cum este redat un număr.
Câmpuri de auto-numerotare: AUTONUM, AUTONUMLGL, AUTONUMOUT
FieldAutoNum implementează the AUTONUM câmp (numerotare secvențială simplă) și expune SeparatorCharacter. FieldAutoNumLgl implements AUTONUMLGL (numerotare legală/de tip schelet), adăugând RemoveTrailingPeriod împreună cu propriul său SeparatorCharacter. FieldAutoNumOut implements AUTONUMOUT (numerotare schelet) și nu are proprietăți proprii în afara bazei Field membri descriși în Lucrul cu câmpuri.
Numerotare legată de listă cu FieldListNum
FieldListNum implementează câmpul LISTNUM: ListName denumeşte definiţia abstractă de numerotare de utilizat, și HasListName raportează dacă codul câmpului furnizează efectiv un nume. ListLevel suprascrie nivelul implicit al listei la care numerotează câmpul, și StartingNumber stabileşte valoarea de la care începe numerotarea câmpului.
Contoare de pagină şi secţiune: FieldPage, FieldSection, FieldSectionPages
FieldPage implementează PAGE câmpul și FieldSectionPages implements SECTIONPAGES. Ambele depind de aspectul paginii calculat pentru a produce un rezultat; la fel ca NUMPAGES câmpul descris în Lucrul cu câmpuri, valorile câmpurilor dependente de aspectul paginii nu sunt calculate în această ediție deoarece nu include un motor de aspect/redare a paginii, astfel aceste câmpuri evaluează la un placeholder 0. FieldSection implements SECTION, returnând numărul secțiunii curente al documentului – nu depinde de paginare și nu este afectat de această limitare.
Secvențe numite cu FieldSeq
FieldSeq implementează câmpul SEQ pentru secvențe numite, numerotate independent (cum ar fi figuri sau tabele): SequenceIdentifier denumește secvența, iar BookmarkName opțional direcționează câmpul către un element în altă parte a documentului în loc de locația proprie a câmpului. InsertNextNumber inserează următorul număr din secvență fără a afișa o valoare pentru poziția curentă, iar ResetNumber / ResetHeadingLevel resetează contorul secvenței la un număr specific sau îl repornește la un nivel de titlu specific.
FieldRevNum
FieldRevNum implementează câmpul REVNUM și nu are proprietăți proprii în afara membrilor de bază Field.
Formatarea numerelor cu NumberStyle
NumberStyle este enum-ul utilizat la nivelurile de listă, numerotarea notelor de subsol/final și numerele de pagină pentru a selecta cum este redat un număr. Stilurile comune includ Arabic, UppercaseRoman / LowercaseRoman, UppercaseLetter / LowercaseLetter, Ordinal și OrdinalText, alături de un set mare de stiluri specifice locale (Kanji, Hangul, Hanja, ThaiLetter, HindiLetter1 și multe altele) plus Bullet, LeadingZero, None și Custom pentru un format furnizat de apelant.
Sfaturi și bune practici
- Folosiți
FieldListNumcând un număr trebuie să facă referire la o definiție existentă de listă prin nume; utilizațiFieldAutoNum/FieldAutoNumLgl/FieldAutoNumOutpentru numerotare care nu este legată de un anumitList. - Rețineți că
FieldPageșiFieldSectionPagesdepind de aspect, la fel caNUMPAGES— nu vă bazați pe faptul căResultreflectă un număr real de pagini calculate în această ediție. - Utilizați
FieldSeq.BookmarkNamecând un câmp SEQ trebuie să facă referire la un număr definit în altă parte a documentului, în loc să-și incrementeze propriul contor la locația câmpului. - Setați
FieldSeq.ResetHeadingLevelcând o secvență numerotată (cum ar fi numerele de figură) trebuie să se repornească la fiecare nou capitol sau titlu de secțiune.
Probleme comune
| Problemă | Cauză | Remediere |
|---|---|---|
FieldPage sau FieldSectionPages arată întotdeauna 0 | Aceste câmpuri depind de aspectul paginii calculat, care nu face parte din această ediție | Comportamentul așteptat – folosiți versiunea comercială Aspose.Words pentru .NET dacă este necesar un număr de pagini calculat |
FieldListNum nu folosește formatarea de listă așteptată | ListName nu corespunde unei definiții abstracte de numerotare prezente în document | Confirmaţi numele exact al listei, sau verificaţi HasListName pentru a vedea dacă codul câmpului furnizează unul |
Numerele FieldSeq nu se reîncep acolo unde era de așteptat | ResetNumber sau ResetHeadingLevel nu a fost setat pe câmpul care ar trebui să repornească secvența | Setaţi proprietatea de resetare corespunzătoare pe acea instanță FieldSeq |
FAQ
Care este diferența dintre numerotarea listelor și aceste câmpuri de numerotare?
Numerotarea listei (List, ListFormat, ListLevel, acoperit în Lucrul cu listele) formatează întregi paragrafe ca elemente de listă. Câmpurile de pe această pagină calculează un număr într-un punct specific al textului – pentru secvențe, contoare de pagină/sectiune sau numerotare automată în stil legal – independent de formatarea listelor din paragraf.
De ce un câmp PAGE evaluează întotdeauna la 0?
FieldPage depinde de aspectul paginii calculat, iar această ediție nu include un motor de aspect/redare a paginii – același motiv pentru care NUMPAGES evaluează la o valoare placeholder.
Cum pot crea o secvență numită, numerotată independent, cum ar fi „Figura 1”, „Figura 2”?
Folosește FieldSeq cu un SequenceIdentifier consistent (cum ar fi "Figure") în fiecare instanță de câmp; fiecare afișează următorul număr din acea secvență.
Cum pot controla în ce stil numeric sau de literă este redat un număr?
Folosește enumul NumberStyle – valori precum Arabic, UppercaseRoman, LowercaseLetter și OrdinalText selectează stilul de redare, alături de Bullet, None și Custom pentru formate non-numerice sau furnizate de apelant.
API Reference Rezumat
| Clasă / Enum | Descriere: |
|---|---|
FieldAutoNum | AUTONUM câmp; SeparatorCharacter |
FieldAutoNumLgl | AUTONUMLGL câmp; RemoveTrailingPeriod, SeparatorCharacter |
FieldAutoNumOut | AUTONUMOUT câmp |
FieldListNum | LISTNUM câmp; ListName, HasListName, ListLevel, StartingNumber |
FieldPage | PAGE câmp (dependând de aspect; evaluează la 0 în această ediție) |
FieldSection | SECTION câmp |
FieldSectionPages | SECTIONPAGES câmp (dependente de aspect; se evaluează la 0 în această ediție) |
FieldSeq | SEQ câmp; SequenceIdentifier, BookmarkName, InsertNextNumber, ResetNumber, ResetHeadingLevel |
FieldRevNum | REVNUM câmp |
NumberStyle | Enum al stilurilor de redare a numerelor utilizate de nivelurile listelor, notele de subsol/note de final și numerele de pagină |