Campi di numerazione (AUTONUM, PAGE, SEQ, e altri)
Campi di Numerazione (AUTONUM, PAGE, SEQ e Altro)
Questa guida mostra come lavorare con i campi di numerazione automatica di Word in Aspose.Words FOSS per .NET, e come differiscono dalla numerazione basata su elenchi. Lavorare con gli elenchi covers List, ListFormat, e ListLevel – il modello a oggetti alla base dei paragrafi di elenchi numerati e puntati di Word. Word ha anche una famiglia separata di numerazione fields che calcolano un numero nella posizione del campo nel testo, anziché tramite la formattazione dell’elenco di paragrafi: numerazione automatica legale e per schemi, contatori di pagina e sezione, numerazione collegata agli elenchi e sequenze nominate. Modella ciascuna come un Field sottoclasse in Aspose.Words.Fields namespace, più il NumberStyle enum condiviso da livelli di elenco, note a piè di pagina e note finali, e numeri di pagina per scegliere come viene visualizzato un numero.
Campi di Numerazione Automatica: AUTONUM, AUTONUMLGL, AUTONUMOUT
FieldAutoNum implementa il AUTONUM campo (numerazione sequenziale semplice) e espone SeparatorCharacter. FieldAutoNumLgl implements AUTONUMLGL (numerazione in stile legale/outline), aggiungendo RemoveTrailingPeriod insieme al proprio SeparatorCharacter. FieldAutoNumOut implements AUTONUMOUT (numerazione outline) e non ha proprietà proprie oltre alla base Field membri descritti in Lavorare con i campi.
Numerazione Collegata a Elenco con FieldListNum
FieldListNum implementa il campo LISTNUM: ListName assegna il nome alla definizione di numerazione astratta da utilizzare, e HasListName segnala se il codice del campo fornisce effettivamente un nome. ListLevel sovrascrive il livello di elenco predefinito su cui il campo numera, e StartingNumber imposta il valore da cui inizia la numerazione del campo.
Contatori di Pagina e Sezione: FieldPage, FieldSection, FieldSectionPages
FieldPage implementa il PAGE campo e FieldSectionPages implements SECTIONPAGES. Entrambi dipendono dal layout di pagina calcolato per produrre un risultato; come per il NUMPAGES campo descritto in Lavorare con i campi, i valori dei campi dipendenti dal layout non vengono calcolati in questa edizione perché non include un motore di layout/rendering della pagina, quindi questi campi valutano a un segnaposto 0. FieldSection implements SECTION, restituisce il numero di sezione corrente del documento – non dipende dalla paginazione e non è influenzato da tale limitazione.
Sequenze nominate con FieldSeq
FieldSeq implementa il campo SEQ per sequenze nominate, numerate indipendentemente (come figure o tabelle): SequenceIdentifier assegna un nome alla sequenza, e BookmarkName opzionalmente indirizza il campo a un elemento altrove nel documento invece che alla posizione stessa del campo. InsertNextNumber inserisce il numero successivo nella sequenza senza mostrare un valore per la posizione corrente, e ResetNumber / ResetHeadingLevel reimpostano il contatore della sequenza a un numero specifico, o lo riavviano a un livello di intestazione specifico.
FieldRevNum
FieldRevNum implementa il campo REVNUM e non possiede proprietà proprie oltre ai membri base Field.
Formattare i numeri con NumberStyle
NumberStyle è l’enumerazione usata nei livelli delle liste, nella numerazione di note a piè di pagina/fine documento e nei numeri di pagina per selezionare come un numero viene visualizzato. Gli stili comuni includono Arabic, UppercaseRoman / LowercaseRoman, UppercaseLetter / LowercaseLetter, Ordinal e OrdinalText, insieme a un ampio set di stili specifici per locale (Kanji, Hangul, Hanja, ThaiLetter, HindiLetter1 e molti altri) più Bullet, LeadingZero, None e Custom per un formato fornito dal chiamante.
Suggerimenti e migliori pratiche
- Utilizza
FieldListNumquando un numero deve fare riferimento a una definizione di elenco esistente per nome; usaFieldAutoNum/FieldAutoNumLgl/FieldAutoNumOutper una numerazione che non è legata a un particolareList. - Ricorda che
FieldPageeFieldSectionPagesdipendono dal layout, così comeNUMPAGES— non fare affidamento sul loroResultper riflettere un conteggio reale delle pagine calcolato in questa edizione. - Usa
FieldSeq.BookmarkNamequando un campo SEQ deve fare riferimento a un numero definito altrove nel documento anziché incrementare il proprio contatore nella posizione del campo. - Imposta
FieldSeq.ResetHeadingLevelquando una sequenza numerata (ad esempio i numeri delle figure) deve ricominciare ad ogni nuovo capitolo o intestazione di sezione.
Problemi comuni
| Problema | Causa | Correzione |
|---|---|---|
FieldPage oppure FieldSectionPages mostra sempre 0 | Questi campi dipendono dal layout della pagina calcolato, che non fa parte di questa edizione | Comportamento previsto – usa la versione commerciale Aspose.Words per .NET se è necessario un conteggio delle pagine calcolato |
FieldListNum non utilizza la formattazione dell’elenco prevista | ListName non corrisponde a una definizione di numerazione astratta presente nel documento | Conferma il nome esatto dell’elenco, oppure controlla HasListName per vedere se il codice del campo ne fornisce uno |
I numeri di FieldSeq non ripartono dove previsto | ResetNumber o ResetHeadingLevel non è stato impostato sul campo che dovrebbe ripristinare la sequenza | Imposta la proprietà di reset appropriata su quell’istanza di FieldSeq |
FAQ
Qual è la differenza tra la numerazione degli elenchi e questi campi di numerazione?
Numerazione dell’elenco (List, ListFormat, ListLevel, coperto in Lavorare con gli elenchi) formatta interi paragrafi come elementi di elenco. I campi su questa pagina calcolano un numero in un punto specifico del testo – per sequenze, contatori di pagina/sezione o numerazione automatica in stile legale – indipendente dalla formattazione di elenco del paragrafo.
Perché un campo PAGE restituisce sempre 0?
FieldPage dipende dal layout di pagina calcolato, e questa edizione non include un motore di layout/rendering della pagina – lo stesso motivo per cui NUMPAGES restituisce un valore segnaposto.
Come creo una sequenza denominata, numerata indipendentemente, come “Figura 1”, “Figura 2”?
Usa FieldSeq con un SequenceIdentifier coerente (come "Figure") per ogni istanza di campo; ciascuno visualizza il numero successivo in quella sequenza.
Come posso controllare in quale stile numerico o letterale viene visualizzato un numero?
Usa l’enumerazione NumberStyle – valori come Arabic, UppercaseRoman, LowercaseLetter e OrdinalText selezionano lo stile di rendering, insieme a Bullet, None e Custom per formati non numerici o forniti dall’utente.
API Reference Riepilogo
| Classe / Enum | Descrizione |
|---|---|
FieldAutoNum | AUTONUM field; SeparatorCharacter |
FieldAutoNumLgl | AUTONUMLGL field; RemoveTrailingPeriod, SeparatorCharacter |
FieldAutoNumOut | AUTONUMOUT campo |
FieldListNum | LISTNUM campo; ListName, HasListName, ListLevel, StartingNumber |
FieldPage | PAGE campo (dipendente dal layout; valuta a 0 in questa edizione) |
FieldSection | SECTION campo |
FieldSectionPages | SECTIONPAGES campo (dipendente dal layout; valuta a 0 in questa edizione) |
FieldSeq | SEQ campo; SequenceIdentifier, BookmarkName, InsertNextNumber, ResetNumber, ResetHeadingLevel |
FieldRevNum | REVNUM campo |
NumberStyle | Enum degli stili di visualizzazione dei numeri usati per i livelli di elenco, le note a piè di pagina/fine e i numeri di pagina |