Lucrul cu intervale editabile

Lucrul cu intervale editabile

Lucrul cu intervale editabile

Acest ghid arată cum să inspectați și să eliminați intervalele editabile – regiunile pe care funcția „Restrict Editing” a Word le exclude din restricția generală de editare a documentului, opțional limitate la un utilizator sau grup specific – în Aspose.Words FOSS pentru .NET. Un interval editabil este încadrat în arborele documentului de o pereche de noduri marker, EditableRangeStart and EditableRangeEnd, și descris în totalitate de EditableRange clasa fațadă.


Găsirea intervalelor editabile într-un document

Nu există o proprietate de colecție unică pentru intervale editabile; găsiți-le prin parcurgerea arborelui de noduri. CompositeNode.GetChildNodes(nodeType, isDeep) cu NodeType.EditableRangeStart returnează fiecare nod EditableRangeStart din document (sau dintr-un subarbore, dacă este apelat pe un nod diferit de Document). Fiecare proprietate EditableRangeStart.EditableRange returnează apoi obiectul fațadă EditableRange corespunzător.


Fațada EditableRange

EditableRange descrie un singur interval editabil în întregime: Id îl identifică, SingleUser opțional numește un utilizator specific căruia i se permite să-l editeze, iar EditorGroup (o valoare EditorType) opțional numește în schimb un grup de editare. EditableRangeStart și EditableRangeEnd returnează perechea de noduri marcatoare care încadră intervalul în document. EditableRange.Remove() elimină intervalul editabil – ridicând exonerația de restricție de editare pentru acea regiune, fără a șterge conținutul documentului din interiorul său.


Nodurile marcatoare: EditableRangeStart și EditableRangeEnd

EditableRangeStart și EditableRangeEnd sunt subclase Node sigilate care marchează limitele unui interval în fluxul de conținut al documentului. EditableRangeStart.Id și EditableRangeEnd.Id identifică intervalul; EditableRangeStart.EditableRange ajunge direct la obiectul fațadă, iar EditableRangeEnd.EditableRangeStart revine la marcatorul de început corespunzător. Fiind noduri obișnuite, ambele susțin membrii standard Node – ParentNode, Document, PreviousSibling, NextSibling și Remove() pentru a șterge marcatorul individual.


Restricționarea accesului cu EditorType

EditorType enumeră grupurile de editare pe care un EditableRange.EditorGroup le poate referi: Administrators, Contributors, Editors, Owners, Everyone, Current, None și Unspecified (disponibile și ca Default, un alias pentru Unspecified).


Sfaturi și cele mai bune practici

  • Folosește GetChildNodes(NodeType.EditableRangeStart, true) cu isDeep: true pentru a găsi intervale editabile oriunde în document, nu doar printre copiii imediati ai unui nod.
  • Citește EditableRange.SingleUser și EditorGroup împreună pentru a determina la cine este restricționat un interval – un interval poate fi limitat la un utilizator specific, un grup de editare sau la niciunul.
  • Apelează EditableRange.Remove() (pe fațadă) în loc să elimini nodurile marcator EditableRangeStart și EditableRangeEnd individual, astfel încât ambele capete ale intervalului să fie curățate în mod consistent.

Probleme comune

ProblemăCauzăRemediere
Nu s-au găsit intervale editabile, deși documentul are editare restricționatăCăutarea a folosit apelul implicit (superficial) GetChildNodesTransmite isDeep: true pentru ca căutarea să acopere întregul subarbore al documentului
Eliminarea unui interval editabil nu elimină textul cuprinsEditableRange.Remove() elimină doar marcajele intervalului și excepția de editare, nu conținutul dintre eleAcest lucru este de așteptat – șterge conținutul separat dacă trebuie eliminat și el
EditorGroup este citit ca Unspecified, deși Word afișează un grup denumitGrupul de editor al intervalului din documentul sursă se mapează la EditorType.Unspecified/Default, în loc de una dintre valorile grupului denumitVerifică și SingleUser – intervalul ar putea fi, în schimb, limitat la un utilizator individual

FAQ

Cum găsesc toate intervalele editabile dintr-un document?

Apelă Document.GetChildNodes(NodeType.EditableRangeStart, true), apoi citește proprietatea EditableRange pe fiecare nod EditableRangeStart returnat.

Cum pot afla cine are voie să editeze un interval dat?

Citește EditableRange.SingleUser (un utilizator specific) și EditableRange.EditorGroup (un grup de editare EditorType) pe obiectul façade.

Cum pot elimina o restricție de editare dintr-o parte a unui document?

Apelă Remove() pe obiectul façade EditableRange pentru acel interval.

Care este diferența dintre EditableRangeStart.EditableRange și EditableRangeEnd.EditableRangeStart?

EditableRangeStart.EditableRange ajunge la obiectul fațadă care descrie întreaga gamă direct. EditableRangeEnd.EditableRangeStart revine la nodul marcatorului de început corespunzător, de la care EditableRange poate fi apoi atins.


API Reference Rezumat

Clasă / EnumDescriere:
EditableRangeFațadă pentru un interval editabil: Id, SingleUser, EditorGroup, Remove()
EditableRangeStartNod care marchează începutul unui interval; Id, EditableRange
EditableRangeEndNod care marchează sfârșitul unui interval; Id, EditableRangeStart
EditorTypeEnum al grupurilor de editare: Administrators, Contributors, Editors, Owners, Everyone, Current, None, Unspecified/Default

Vezi și:

 Română