Πεδία Αρίθμησης (AUTONUM, PAGE, SEQ, και Περισσότερα)
Πεδία Αρίθμησης (AUTONUM, PAGE, SEQ, και Περισσότερα)
Αυτός ο οδηγός δείχνει πώς να εργαστείτε με τα αυτόματα πεδία αρίθμησης του Word στο Aspose.Words FOSS για .NET, και πώς διαφέρουν από την αρίθμηση βάσει λίστας. Εργασία με Λίστες covers List, ListFormat, και ListLevel – το μοντέλο αντικειμένου πίσω από τις αριθμημένες και κουκκίδες παραγράφους λιστών του Word. Το Word διαθέτει επίσης μια ξεχωριστή οικογένεια αρίθμησης fields που υπολογίζουν έναν αριθμό στη θέση του πεδίου στο κείμενο, αντί μέσω μορφοποίησης λίστας παραγράφων: νομική και δομική αυτόματη αρίθμηση, μετρητές σελίδας και ενότητας, αρίθμηση συνδεδεμένη με λίστα και ονομαστικές ακολουθίες. Το μοντέλο τοποθετεί το καθένα ως ένα Field υποκλάση στο Aspose.Words.Fields χώρος ονομάτων, συν το NumberStyle enum που μοιράζεται από τα επίπεδα λιστών, υποσημειώσεις και τελικές σημειώσεις, καθώς και αριθμούς σελίδων για την επιλογή του πώς θα αποδοθεί ένας αριθμός.
Πεδία Αυτόματης Αρίθμησης: AUTONUM, AUTONUMLGL, AUTONUMOUT
FieldAutoNum υλοποιεί το AUTONUM πεδίο (απλή διαδοχική αρίθμηση) και εκθέτει SeparatorCharacter. FieldAutoNumLgl implements AUTONUMLGL (legal/outline-style αρίθμηση), προσθέτοντας RemoveTrailingPeriod παράλληλα με τη δική του SeparatorCharacter. FieldAutoNumOut implements AUTONUMOUT (outline numbering) και δεν έχει ιδιότητες δικές του πέραν της βασικής 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 εξαρτάται από την υπολογισμένη διάταξη σελίδας, και αυτή η έκδοση δεν περιλαμβάνει page-layout/rendering engine – ο ίδιος λόγος που το NUMPAGES αξιολογείται ως placeholder value.
Πώς μπορώ να δημιουργήσω μια ονομαστική, ανεξάρτητα αριθμημένη ακολουθία όπως “Figure 1”, “Figure 2”?
Χρησιμοποιήστε το FieldSeq με ένα συνεπές SequenceIdentifier (όπως το "Figure") σε κάθε παρουσία πεδίου· κάθε ένα εμφανίζει τον επόμενο αριθμό σε αυτή τη σειρά.
Πώς μπορώ να ελέγξω σε ποιο στυλ αριθμού ή γράμματος εμφανίζεται ένας αριθμός;
Χρησιμοποιήστε το enum NumberStyle – τιμές όπως Arabic, UppercaseRoman, LowercaseLetter και OrdinalText επιλέγουν το στυλ απόδοσης, μαζί με Bullet, None και Custom για μη-αριθμητικές ή παρεχόμενες από τον κάλεστη μορφές.
API Reference Σύνοψη
| Κλάση / Enum | Περιγραφή |
|---|---|
FieldAutoNum | AUTONUM πεδίο; SeparatorCharacter |
FieldAutoNumLgl | AUTONUMLGL πεδίο; RemoveTrailingPeriod, SeparatorCharacter |
FieldAutoNumOut | AUTONUMOUT πεδίο |
FieldListNum | LISTNUM πεδίο; ListName, HasListName, ListLevel, StartingNumber |
FieldPage | PAGE πεδίο (εξαρτάται από τη διάταξη· αξιολογείται ως 0 σε αυτήν την έκδοση) |
FieldSection | SECTION πεδίο |
FieldSectionPages | SECTIONPAGES πεδίο (εξαρτάται από τη διάταξη· αξιολογείται σε 0 σε αυτήν την έκδοση) |
FieldSeq | SEQ πεδίο· SequenceIdentifier, BookmarkName, InsertNextNumber, ResetNumber, ResetHeadingLevel |
FieldRevNum | REVNUM πεδίο |
NumberStyle | Απαρίθμηση των στυλ απόδοσης αριθμών που χρησιμοποιούνται από τα επίπεδα λιστών, τις υποσημειώσεις/υποσημειώσεις τέλους και τους αριθμούς σελίδας |