Εργασία με Επεξεργάσιμες Περιοχές

Εργασία με Επεξεργάσιμες Περιοχές

Εργασία με Επεξεργάσιμες Περιοχές

Αυτός ο οδηγός δείχνει πώς να ελέγξετε και να αφαιρέσετε επεξεργάσιμες περιοχές – τις περιοχές που η λειτουργία “Restrict Editing” του Word εξαιρεί από τον γενικό περιορισμό επεξεργασίας ενός εγγράφου, προαιρετικά περιορισμένες σε συγκεκριμένο χρήστη ή ομάδα – στο Aspose.Words FOSS για .NET. Μια επεξεργάσιμη περιοχή περικλείεται στο δέντρο του εγγράφου από ένα ζευγάρι κόμβων σημειώματος, EditableRangeStart and EditableRangeEnd, και περιγράφεται συνολικά από το EditableRange κλάση προσκηνίου.


Εύρεση Επεξεργάσιμων Περιοχών σε Ένα Έγγραφο

Δεν υπάρχει μια ενιαία ιδιότητα συλλογής για επεξεργάσιμες περιοχές· βρείτε τις περιηγούμενοι το δέντρο κόμβων. CompositeNode.GetChildNodes(nodeType, isDeep) με NodeType.EditableRangeStart επιστρέφει κάθε κόμβο EditableRangeStart στο έγγραφο (ή σε υποδέντρο, εάν κληθεί σε κόμβο διαφορετικό από Document). Κάθε ιδιότητα EditableRangeStart.EditableRange επιστρέφει τότε το αντίστοιχο αντικείμενο προσκηνίου EditableRange.


Το Προσκήνιο EditableRange

EditableRange περιγράφει μια μοναδική επεξεργάσιμη περιοχή συνολικά: το Id την αναγνωρίζει, το SingleUser προαιρετικά ονομάζει έναν συγκεκριμένο χρήστη που επιτρέπεται να την επεξεργαστεί, και το EditorGroup (μια τιμή EditorType) προαιρετικά ονομάζει μια ομάδα επεξεργασίας αντ’ αυτού. Τα EditableRangeStart και EditableRangeEnd επιστρέφουν το ζεύγος κόμβων δείκτη που περικλείουν την περιοχή στο έγγραφο. Το EditableRange.Remove() αφαιρεί την επεξεργάσιμη περιοχή – αφαιρώντας την εξαίρεση περιορισμού επεξεργασίας για εκείνη την περιοχή, χωρίς να διαγράφει το περιεχόμενο του εγγράφου μέσα σε αυτήν.


Οι Κόμβοι Δείκτη: EditableRangeStart και EditableRangeEnd

EditableRangeStart και EditableRangeEnd είναι sealed Node υποκατηγορίες που σημειώνουν τα όρια μιας περιοχής στη ροή περιεχομένου του εγγράφου. EditableRangeStart.Id και EditableRangeEnd.Id προσδιορίζουν την περιοχή· EditableRangeStart.EditableRange προσεγγίζει άμεσα το αντικείμενο facade, και EditableRangeEnd.EditableRangeStart επιστρέφει στον αντίστοιχο αρχικό δείκτη. Ως κανονικοί κόμβοι, και οι δύο υποστηρίζουν τα τυπικά μέλη Node — ParentNode, Document, PreviousSibling, NextSibling και Remove() για τη διαγραφή του επιμέρους δείκτη.


Περιορισμός πρόσβασης με EditorType

EditorType καταμετρά τις ομάδες επεξεργασίας που μπορεί να αναφέρει ένα EditableRange.EditorGroup: Administrators, Contributors, Editors, Owners, Everyone, Current, None και Unspecified (διαθέσιμο επίσης ως Default, ψευδώνυμο για Unspecified).


Συμβουλές και βέλτιστες πρακτικές

  • Χρησιμοποιήστε το GetChildNodes(NodeType.EditableRangeStart, true) με το isDeep: true για να εντοπίσετε επεξεργάσιμες περιοχές οπουδήποτε στο έγγραφο, όχι μόνο μεταξύ των άμεσων παιδιών ενός κόμβου.
  • Διαβάστε τα EditableRange.SingleUser και EditorGroup μαζί για να καθορίσετε σε ποιον περιορίζεται μια περιοχή — η περιοχή μπορεί να περιορίζεται σε έναν συγκεκριμένο χρήστη, μια ομάδα επεξεργασίας ή κανένα.
  • Καλέστε το EditableRange.Remove() (στο facade) αντί να αφαιρέσετε τα κόμβους δείκτη EditableRangeStart και EditableRangeEnd ξεχωριστά, ώστε και τα δύο άκρα της περιοχής να καθαρίζονται με συνέπεια.

Κοινά προβλήματα

ΠρόβλημαΑιτίαΔιόρθωση
Δεν βρέθηκαν επεξεργάσιμες περιοχές παρόλο που το έγγραφο έχει περιορισμένη επεξεργασίαΗ αναζήτηση χρησιμοποίησε την προεπιλεγμένη (ρηχή) κλήση GetChildNodesΠεράστε το isDeep: true ώστε η αναζήτηση να καλύπτει ολόκληρο το υποδέντρο του εγγράφου
Η αφαίρεση μιας επεξεργάσιμης περιοχής δεν αφαιρεί το κείμενο που περιέχεταιEditableRange.Remove() αφαιρεί μόνο τα σημεία περιοχής και την εξαίρεση επεξεργασίας, όχι το περιεχόμενο μεταξύ τουςΑυτό είναι αναμενόμενο – διαγράψτε το περιεχόμενο ξεχωριστά εάν πρέπει επίσης να αφαιρεθεί
EditorGroup εμφανίζεται ως Unspecified παρόλο που το Word δείχνει μια ονομαστική ομάδαΗ ομάδα επεξεργαστή της περιοχής στο πηγαίο έγγραφο αντιστοιχεί σε EditorType.Unspecified/Default αντί για μία από τις τιμές της ονομαστικής ομάδαςΕλέγξτε επίσης το SingleUser – το εύρος ενδέχεται να περιορίζεται σε έναν μεμονωμένο χρήστη

FAQ

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

Καλέστε Document.GetChildNodes(NodeType.EditableRangeStart, true), στη συνέχεια διαβάστε την ιδιότητα EditableRange σε κάθε κόμβο EditableRangeStart που επιστρέφεται.

Πώς μπορώ να διαπιστώ ποιος επιτρέπεται να επεξεργαστεί μια δεδομένη περιοχή;

Διαβάστε EditableRange.SingleUser (έναν συγκεκριμένο χρήστη) και EditableRange.EditorGroup (μια ομάδα επεξεργασίας EditorType) στο αντικείμενο προσκηνίου.

Πώς μπορώ να αφαιρέσω έναν περιορισμό επεξεργασίας από μέρος ενός εγγράφου;

Καλέστε Remove() στο αντικείμενο προσκηνίου EditableRange για αυτήν την περιοχή.

Ποια είναι η διαφορά μεταξύ EditableRangeStart.EditableRange και EditableRangeEnd.EditableRangeStart;

EditableRangeStart.EditableRange φθάνει στο αντικείμενο προσκηνής που περιγράφει ολόκληρο το εύρος άμεσα. EditableRangeEnd.EditableRangeStart επιστρέφει στον αντίστοιχο κόμβο δείκτη εκκίνησης, από τον οποίο μπορεί στη συνέχεια να φθάσει EditableRange.


API Reference Σύνοψη

Κλάση / EnumΠεριγραφή
EditableRangeFacade για μία επεξεργάσιμη περιοχή: Id, SingleUser, EditorGroup, Remove()
EditableRangeStartΚόμβος που σημειώνει την έναρξη ενός εύρους; Id, EditableRange
EditableRangeEndΚόμβος που σημειώνει το τέλος ενός εύρους; Id, EditableRangeStart
EditorTypeEnum των ομάδων επεξεργασίας: Administrators, Contributors, Editors, Owners, Everyone, Current, None, Unspecified/Default

Δείτε επίσης

 Ελληνικά