Πώς να εργαστείτε με το Word Index και τους πίνακες στο .NET

Πώς να εργαστείτε με το Word Index και τους πίνακες στο .NET

Πώς να εργαστείτε με το ευρετήριο και τους πίνακες του Word στο .NET

Αυτός ο οδηγός δείχνει πώς να εισάγετε και να δημιουργήσετε τις δομές αναφοράς που βασίζονται σε πεδία, τις οποίες τα έγγραφα Word χρησιμοποιούν για να συνοψίσουν το περιεχόμενό τους — έναν πίνακα περιεχομένων, ένα αλφαβητικό ευρετήριο και έναν πίνακα αρχών — με το Aspose.Words FOSS για .NET. Κάθε μία συντίθεται από πεδία σημειωτών αλλού στο έγγραφο: το FieldToc συνθέτει καταχωρίσεις βάσει επικεφαλίδων και σημειωμένες με FieldTC, το FieldIndex συνθέτει δείκτες FieldXE, και το FieldToa συνθέτει παραπομπές FieldTA. Κάθε κλάση πεδίου σε αυτήν την οικογένεια προέρχεται από τον βασικό τύπο Field στο χώρο ονομάτων Aspose.Words.Fields.


Οδηγός βήμα-βήμα

Βήμα 1: Εισαγωγή πίνακα περιεχομένων

Κλήστε το DocumentBuilder.InsertTableOfContents(switches) στη θέση όπου πρέπει να εμφανιστεί ο TOC, περνώντας μια συμβολοσειρά εναλλαγής πεδίου σε στυλ Word — για παράδειγμα "\o \"1-3\" \h \z \u" — για να ελέγξετε ποια επίπεδα επικεφαλίδων θα συμπεριληφθούν και πώς θα μορφοποιηθεί το αποτέλεσμα, οι ίδιες εναλλαγές που γράφει το Word όταν ένας TOC εισάγεται μέσω της διεπαφής χρήστη. Αυτό εισάγει ένα FieldToc, το οποίο εκθέτει επίσης την ίδια δομή απευθείας ως ιδιότητες: HeadingLevelRange/EntryLevelRange για τα περιλαμβανόμενα επίπεδα διάρθρωσης, InsertHyperlinks, PreserveTabs/PreserveLineBreaks, και BookmarkName. Για πίνακα εικόνων αντί για πίνακα περιεχομένων, ορίστε το TableOfFiguresLabel ή το CaptionlessTableOfFiguresLabel στο ίδιο FieldToc.


Βήμα 2: Σημειώστε προσαρμοσμένες καταχωρήσεις του πίνακα περιεχομένων

Δεν κάθε καταχώριση που πρέπει να περιλαμβάνει ένας TOC προέρχεται από στυλ επικεφαλίδας. Εισάγετε ένα FieldTC σε συγκεκριμένη θέση για να το σημειώσετε ως καταχώριση TOC ανεξάρτητα από το στυλ παραγράφου: το FieldTC.Text είναι το κείμενο της καταχώρισης, το EntryLevel είναι το επίπεδο διάρθρωσης στο οποίο πρέπει να εμφανιστεί, και το OmitPageNumber καταστέλλει τον αριθμό σελίδας για αυτήν την καταχώριση. Όταν ένα έγγραφο χρειάζεται περισσότερους από έναν TOC — για παράδειγμα έναν κύριο TOC και έναν ξεχωριστό πίνακα εικόνων — ορίστε το FieldTC.TypeIdentifier ώστε να ταιριάζει με το EntryIdentifier του FieldToc που πρέπει να το συλλέξει.


Βήμα 3: Δημιουργία ευρετηρίου από τις επισημασμένες καταχωρήσεις

Σημειώστε κάθε θέση που ανήκει στο ευρετήριο με ένα FieldXE, ορίζοντας το Text στο κείμενο της καταχώρισης· το EntryType ομαδοποιεί τις καταχωρίσεις σε υποεπίπεδα χρησιμοποιώντας σύνταξη διαχωρισμένη με άνω-κάτω τελείες, και το PageRangeBookmarkName σημειώνει ένα σελιδοδείκτη του οποίου η έκταση γίνεται εύρος σελίδων στο ευρετήριο αντί για μοναδικό αριθμό σελίδας. Το FieldIndex συγκεντρώνει κάθε δείκτη FieldXE στο έγγραφο στο αλφαβητικό αποτέλεσμα — ορίστε το Heading για να εισάγετε διαχωριστές γραμμής γράμματος (A, B, C…), το LetterRange για να περιορίσετε το ευρετήριο σε μέρος του αλφαβήτου, και το RunSubentriesOnSameLine για να ελέγξετε τη διάταξη των υποκαταχωρίσεων. Τα PageNumberSeparator, PageRangeSeparator, SequenceSeparator και CrossReferenceSeparator ελέγχουν τη στίξη μεταξύ μιας καταχώρισης και της αναφοράς της σε σελίδα. Τα ενσωματωμένα οπτικά στυλ ευρετηρίου του Word διατίθενται ως η απαρίθμηση FieldIndexFormat (Template, Classic, Fancy, Modern, Bulleted, Formal, Simple).


Βήμα 4: Δημιουργία Πίνακα Αρχών από Παραπομπές

Σημειώστε κάθε παραπομπή στο κείμενο με ένα FieldTA: τα LongCitation και ShortCitation περιέχουν το κείμενο της παραπομπής, το EntryCategory την ομαδοποιεί κάτω από μια επικεφαλίδα όπως «Cases» ή «Statutes», και τα IsBold/IsItalic ελέγχουν τη μορφοποίησή της. Το FieldToa συγκεντρώνει αυτές τις παραπομπές σε έναν πίνακα — το EntryCategory επιλέγει ποια κατηγορία θα συγκεντρωθεί, το UseHeading ελέγχει αν εμφανίζονται οι επικεφαλίδες κατηγοριών, το UsePassim εφαρμόζει τη σύμβαση «passim» για πηγές που παρατίθενται πολλές φορές, και τα PageRangeSeparator/PageNumberListSeparator/SequenceSeparator/EntrySeparator/RemoveEntryFormatting ελέγχουν τη διάταξη.


Βήμα 5: Ανανέωση πεδίων μετά τις αλλαγές του εγγράφου

Ένας TOC, ευρετήριο ή πίνακας πηγών δεν ενημερώνεται αυτόματα όταν το περιβάλλον περιεχόμενο αλλάζει. Καλέστε το Update() στο συγκεκριμένο πεδίο — για παράδειγμα το FieldToc.Update() — για να επαναϋπολογίσετε το αποτέλεσμα του, ή το FieldToc.UpdatePageNumbers() όταν χρειάζεται μόνο η ανανέωση του μέρους με τον αριθμό σελίδας. Για να ανανεώσετε όλα τα πεδία σε ένα έγγραφο ταυτόχρονα αντί για ένα-ένα, καλέστε το Document.UpdateFields(). Θυμηθείτε ότι οι αριθμοί σελίδας στα αποτελέσματα αυτών των πεδίων αξιολογούνται ως τιμές placeholder σε αυτήν την έκδοση, καθώς η διάταξη σελίδας και η σελιδοποίηση δεν αποτελούν μέρος της.


Βήμα 6: Συμπερίληψη Εγγραφών Από Άλλα Έγγραφα

Εισαγάγετε ένα FieldRD ώστε ένα TOC, index ή table of authorities να αντλήσει καταχωρήσεις από άλλο αρχείο κατά τη σύνθεση. Το FieldRD.FileName ονομάζει το αναφερόμενο έγγραφο και το IsPathRelative ελέγχει αν η διαδρομή επιλύεται σχετικά με το τρέχον έγγραφο. Προσθέστε ένα FieldRD για κάθε επιπλέον έγγραφο και ενημερώστε το πεδίο σύνθεσης μετά, ώστε το συνδυασμένο αποτέλεσμα να περιλαμβάνει το αναφερόμενο περιεχόμενο.


Κοινά Προβλήματα και Διορθώσεις

Ο πίνακας περιεχομένων δεν περιλαμβάνει τις αναμενόμενες επικεφαλίδες. Η συμβολοσειρά εναλλαγής του TOC (ή HeadingLevelRange) εξαιρεί αυτά τα επίπεδα περιγράμματος. Προσαρμόστε τις εναλλαγές που περνιούνται στο InsertTableOfContents, ή ορίστε FieldToc.HeadingLevelRange απευθείας.

Μια καταχώριση ευρετηρίου δεν εμφανίζεται όπου αναμένεται. Η αντίστοιχη FieldXE ο δείκτης λείπει, ή του EntryType Η σύνταξη υποεπίπεδου δεν ταιριάζει με αυτό που FieldIndex αναμένει. Επιβεβαιώστε το FieldXE τα σημεία υπάρχουν και οι EntryType τιμές διαμορφώνονται σταθερά.

Τα αποτελέσματα του πεδίου φαίνονται παλιά μετά την επεξεργασία του περιεχομένου. Το πεδίο δεν ενημερώθηκε μετά την επεξεργασία. Καλέστε Update() στο συγκεκριμένο πεδίο, ή Document.UpdateFields() για να ανανεώσετε όλα τα πεδία ταυτόχρονα.

Οι καταχωρίσεις από άλλο έγγραφο δεν περιλαμβάνονται κατά τη μεταγλώττιση. Όχι FieldRD η αναφορά ότι το έγγραφο υπάρχει, ή IsPathRelative δεν ταιριάζει με το πώς πρέπει να επιλυθεί η διαδρομή. Προσθέστε ένα FieldRD με το σωστό FileName and IsPathRelative ρύθμιση.


Συχνές Ερωτήσεις

Πώς μπορώ να εισάγω ένα πίνακα περιεχομένων προγραμματιστικά;

Κλήση του DocumentBuilder.InsertTableOfContents(switches) με μια συμβολοσειρά διακόπτη σε στυλ Word, όπως το "\o \"1-3\" \h \z \u", στη θέση όπου πρέπει να εμφανιστεί ο TOC.

Πώς μπορώ να σημειώσω κείμενο ως καταχώρηση ευρετηρίου;

Εισάγετε ένα πεδίο FieldXE σε εκείνη τη θέση με την ιδιότητα Text του ορισμένη στο κείμενο της καταχώρησης· το FieldIndex συγκεντρώνει όλους τους δείκτες FieldXE στο έγγραφο στο αποτέλεσμα του ευρετηρίου.

Ποια είναι η διαφορά μεταξύ του FieldTC και μιας καταχώρησης TOC βάσει επικεφαλίδας;

Η προεπιλεγμένη συμπεριφορά του TOC του Word συλλέγει καταχωρήσεις από παραγράφους χρησιμοποιώντας στυλ επικεφαλίδων. Το FieldTC σημειώνει μια αυθαίρετη θέση ως καταχώρηση TOC ανεξάρτητα από το στυλ παραγράφου, το οποίο το FieldToc μπορεί να συμπεριλάβει μέσω αντιστοίχισης των τιμών EntryIdentifier/TypeIdentifier.

Πώς μπορώ να ενημερώσω έναν TOC ή ένα ευρετήριο μετά τις αλλαγές στο έγγραφο;

Κλήση του Update() στο συγκεκριμένο πεδίο (ή του UpdatePageNumbers() σε ένα FieldToc μόνο για αριθμούς σελίδων), ή του Document.UpdateFields() για να ενημερώσετε όλα τα πεδία στο έγγραφο.

Μπορεί να δημιουργηθεί ένα TOC ή ευρετήριο σε πολλαπλά έγγραφα;

Ναι — εισάγετε ένα FieldRD που δείχνει σε κάθε πρόσθετο έγγραφο μέσω FileName. Το πεδίο σύνθεσης (FieldToc, FieldIndex ή FieldToa) περιλαμβάνει τις εγγραφές από τα αναφερθέντα έγγραφα μόλις ενημερωθεί.


Δείτε επίσης

 Ελληνικά