Bookmarks

Bookmarks

Αυτός ο οδηγός δείχνει πώς να διαβάζετε, να εισάγετε, να πλοηγηθείτε σε και να αφαιρείτε σελιδοδείκτες σε ένα έγγραφο Word με Aspose.Words FOSS για .NET. Ένας σελιδοδείκτης σηματοδοτεί μια ονομασμένη θέση ή περιοχή περιεχομένου ώστε να μπορεί να αναζητηθεί, να πλοηγηθεί ή να χρησιμοποιηθεί ως σημείο εισαγωγής για περαιτέρω επεξεργασίες. Aspose.Words FOSS για .NET αντιπροσωπεύει τους σελιδοδείκτες με τις κλάσεις Bookmark, BookmarkStart και BookmarkEnd, και παρέχει μεθόδους DocumentBuilder για τη δημιουργία και τον εντοπισμό τους κατά τη συγγραφή ή την επεξεργασία ενός εγγράφου.


Ανάγνωση Σελιδοδεικτών

Κάθε Range εκθέτει τους σελιδοδείκτες που περιέχει μέσω της ιδιότητας Bookmarks, η οποία επιστρέφει ένα BookmarkCollection. Επειδή το Document ίδιο εκθέτει ένα Range, το doc.Range.Bookmarks επιστρέφει κάθε σελιδοδείκτη στο έγγραφο. Αναζητήστε έναν συγκεκριμένο σελιδοδείκτη κατά όνομα με τον δείκτη BookmarkCollection — bookmarks[bookmarkName] — ελέγξτε πόσοι υπάρχουν με το Count, ή περιηγηθείτε σε ολόκληρη τη συλλογή με το GetEnumerator(). Κάθε Bookmark εκθέτει το Name του και το κείμενο που περιβάλλει μέσω του Text.


Εισαγωγή Σελιδοδεικτών με DocumentBuilder

DocumentBuilder είναι ο συνηθισμένος τρόπος δημιουργίας σελιδοδεικτών κατά τη σύνταξη ενός εγγράφου. Καλέστε το StartBookmark(bookmarkName) πριν την εισαγωγή περιεχομένου, μετά το EndBookmark(bookmarkName) — ο κατασκευαστής τυλίγει ό,τι γράφτηκε μεταξύ τους ως την περιοχή του σελιδοδείκτη. Για μια περιοχή από στήλες πίνακα, χρησιμοποιήστε το StartColumnBookmark(bookmarkName) και το EndColumnBookmark(bookmarkName) αντί αυτού· το αποτέλεσμα Bookmark.IsColumn είναι true, με τα FirstColumn και LastColumn να προσδιορίζουν την επισημασμένη περιοχή στηλών. Για να μετατοπίσετε τον κατασκευαστή σε έναν υπάρχοντα σελιδοδείκτη για περαιτέρω επεξεργασίες, καλέστε το MoveToBookmark(bookmarkName), ή την υπερφόρτωση MoveToBookmark(bookmarkName, isStart, isAfter) για να ελέγξετε ποιο άκρο του σελιδοδείκτη θα τοποθετηθεί ο κέρσορας.


Δομή Σελιδοδείκτη στο Δέντρο Εγγράφου

Ένα σελιδοδείκτη αναπαρίσταται στο δέντρο του εγγράφου ως ένα ζεύγος κόμβων: BookmarkStart και BookmarkEnd, και οι δύο κατασκευασμένα ως BookmarkStart(doc, name) / BookmarkEnd(doc, name). Κάθε ένας συνδέεται πίσω στο λογικό αντικείμενο Bookmark — το BookmarkStart.Bookmark το επιστρέφει, και το Bookmark με τη σειρά του εκθέτει τις ιδιότητες BookmarkStart και BookmarkEnd που δείχνουν στους δύο κόμβους ορίου του. Επειδή τα BookmarkStart και BookmarkEnd είναι κανονικοί κόμβοι, υποστηρίζουν τις τυπικές λειτουργίες κόμβων όπως GetText(), Clone(isCloneChildren) και GetAncestor(ancestorType), και μπορούν να εντοπιστούν περπατώντας το δέντρο όπως οποιουδήποτε άλλου τύπου κόμβου.


Αφαίρεση Σελιδοδεικτών

Καλέστε το Bookmark.Remove() για να διαγράψετε τα σημεία έναρξης και λήξης ενός μεμονωμένου σελιδοδείκτη — αυτό αφαιρεί μόνο τον σελιδοδείκτη, όχι το περιεχόμενο του εγγράφου που περιβάλλει. Για μαζική αφαίρεση σελιδοδεικτών, χρησιμοποιήστε τα BookmarkCollection.Remove(bookmark), Remove(bookmarkName), RemoveAt(index) ή Clear() για να αφαιρέσετε όλους τους σελιδοδείκτες στην περιοχή ταυτόχρονα.


Συμβουλές και Καλές Πρακτικές

  • Προτιμήστε το ευρετήριο BookmarkCollection (bookmarks["BookmarkName"]) αντί για χειροκίνητη επανάληψη όταν γνωρίζετε ήδη το όνομα του στοχευόμενου σελιδοδείκτη.
  • Πάντα συνδυάστε μια κλήση StartBookmark(name) με μια αντίστοιχη κλήση EndBookmark(name) χρησιμοποιώντας το ίδιο όνομα — ένα μη συζευγμένο ζεύγος αφήνει τον σελιδοδείκτη ατελή.
  • Ελέγξτε το Bookmark.IsColumn πριν διαβάσετε τα FirstColumn ή LastColumn — αυτές οι δύο ιδιότητες έχουν νόημα μόνο για σελιδοδείκτες στήλης που δημιουργήθηκαν με το StartColumnBookmark/EndColumnBookmark.
  • Το Bookmark.Remove() διαγράφει μόνο τα σημεία του σελιδοδείκτη, όχι το κείμενο που περιέχεται, έτσι η αφαίρεση ενός σελιδοδείκτη δεν διαγράφει ποτέ το περιεχόμενο του εγγράφου.
  • Χρησιμοποιήστε το DocumentBuilder.MoveToBookmark() για να μεταφέρετε τον κέρσορα του δημιουργού σε μια γνωστή θέση αντί να ψάχνετε χειροκίνητα το δέντρο κόμβων για ένα BookmarkStart.

Συνηθισμένα προβλήματα

ΠρόβλημαΑιτίαΔιόρθωση
BookmarkCollection indexer επιστρέφει null για αναζήτηση ονόματοςΤο όνομα σελιδοδείκτη δεν υπάρχει στην περιοχή που αναζητείταιΚαταγράψτε πρώτα τα ονόματα μέσω GetEnumerator() για να επιβεβαιώσετε το ακριβές όνομα με διάκριση πεζών-κεφαλαίων
Το εισαχθέν περιεχόμενο δεν είναι σελιδοδειγμένοEndBookmark() δεν κλήθηκε ποτέ, ή κλήθηκε με διαφορετικό όνομα από το StartBookmark()Πάντα αντιστοιχίστε το StartBookmark(name) με το EndBookmark(name) χρησιμοποιώντας την ίδια συμβολοσειρά ονόματος
Τα δεδομένα σελιδοδείκτη στήλης φαίνονται λανθασμέναΤο FirstColumn/LastColumn διαβάζεται χωρίς έλεγχο πρώτα του IsColumnΕρμηνεύστε το FirstColumn/LastColumn μόνο όταν το Bookmark.IsColumn είναι true

FAQ

Πώς μπορώ να λάβω όλα τα σελιδοδείκτες σε ένα έγγραφο;

Διαβάστε το doc.Range.Bookmarks, το οποίο επιστρέφει ένα BookmarkCollection που καλύπτει ολόκληρο το έγγραφο.

Μπορώ να βάλω σελιδοδείκτη σε μέρος ενός πίνακα ανά στήλη αντί για εύρος κειμένου;

Ναι — χρησιμοποιήστε το DocumentBuilder.StartColumnBookmark(bookmarkName) και το EndColumnBookmark(bookmarkName). Ο προκύπτων σελιδοδείκτης έχει το IsColumn ορισμένο σε true, με το FirstColumn/LastColumn να σημειώνει το εύρος των στηλών.

Αφαιρώντας έναν σελιδοδείκτη διαγράφεται το κείμενο που σημειώνει;

No. Bookmark.Remove() αφαιρεί μόνο τους κόμβους δείκτη BookmarkStart/BookmarkEnd; το περιεχόμενο του εγγράφου μεταξύ τους παραμένει αμετάβλητο.

Πώς μπορώ να μετακινήσω τον κέρσορα DocumentBuilder σε μια υπάρχουσα σελιδοδείκτη;

Καλέστε το DocumentBuilder.MoveToBookmark(bookmarkName), ή το MoveToBookmark(bookmarkName, isStart, isAfter) για να ελέγξετε αν ο κέρσορας θα τοποθετηθεί στην αρχή ή στο τέλος του σελιδοδείκτη.

Ποια είναι η διαφορά μεταξύ των υπερφορτώσεων του BookmarkCollection.Remove();

Remove(bookmark) δέχεται ένα αντικείμενο Bookmark, το Remove(bookmarkName) δέχεται το όνομά του, και το RemoveAt(index) δέχεται τη θέση του στη συλλογή — και οι τρείς αφαιρούν έναν μόνο σελιδοδείκτη, ενώ το Clear() αφαιρεί κάθε σελιδοδείκτη στη συλλογή.


API Reference Σύνοψη

Κλάση / ΜέθοδοςΠεριγραφή
BookmarkΑντιπροσωπεύει έναν μοναδικό σελιδοδείκτη· εκθέτει τα Name, Text, IsColumn, FirstColumn, LastColumn και Remove()
BookmarkCollectionΣελιδοδείκτες σε ένα Range; ευρετήριο κατά όνομα, Remove(), RemoveAt(), Clear(), Count
BookmarkStart / BookmarkEndΚόμβοι εγγράφου που σηματοδοτούν τα όρια ενός σελιδοδείκτη; σύνδεσμος πίσω μέσω Bookmark.BookmarkStart/Bookmark.BookmarkEnd
Range.BookmarksΕπιστρέφει το BookmarkCollection για ένα δεδομένο εύρος, συμπεριλαμβανομένου του doc.Range.Bookmarks για ολόκληρο το έγγραφο
DocumentBuilder.StartBookmark() / EndBookmark()Τυλίξτε το εισαχθέν περιεχόμενο σε μια ονομασμένη σελιδοδείκτη
DocumentBuilder.StartColumnBookmark() / EndColumnBookmark()Σημειώστε ένα εύρος στηλών πίνακα ως σελιδοδείκτη
DocumentBuilder.MoveToBookmark()Τοποθετεί τον κέρσορα του builder σε έναν υπάρχοντα σελιδοδείκτη

Δείτε επίσης

 Ελληνικά