Szerkeszthető tartományok használata
A szerkeszthető tartományok kezelése
Ez az útmutató bemutatja, hogyan lehet ellenőrizni és eltávolítani a szerkeszthető tartományokat – azokat a területeket, amelyeket a Word “Restrict Editing” funkciója kivételesként kezel a dokumentum általános szerkesztési korlátozásából, opcionálisan egy adott felhasználóra vagy csoportra korlátozva – a Aspose.Words FOSS a .NET számára. Egy szerkeszthető tartományt a dokumentumfában egy pár jelzőcsomópont határol, EditableRangeStart and EditableRangeEnd, és teljes egészében a EditableRange facade osztály.
Szerkeszthető tartományok keresése egy dokumentumban
Nincs egyetlen gyűjtemény tulajdonság a szerkeszthető tartományokhoz; megtalálhatók a csomópontfa bejárásával. CompositeNode.GetChildNodes(nodeType, isDeep) NodeType.EditableRangeStart minden EditableRangeStart csomópontot visszaad a dokumentumban (vagy egy részfában, ha egy Document-től eltérő csomóponton hívják). Minden EditableRangeStart.EditableRange tulajdonság ezután a megfelelő EditableRange felület objektumot adja vissza.
A EditableRange felület
EditableRange egyetlen szerkeszthető tartományt ír le egészként: Id azonosítja, SingleUser opcionálisan megnevezi a konkrét felhasználót, akinek engedélyezett a szerkesztés, és EditorGroup (egy EditorType érték) helyette opcionálisan egy szerkesztőcsoportot nevez meg. EditableRangeStart és EditableRangeEnd visszaadják a dokumentumban a tartományt határoló marker csomópontok párját. EditableRange.Remove() eltávolítja a szerkeszthető tartományt – feloldva a szerkesztési korlátozás kivételét azon a területen, a tartalom dokumentumban marad meg.
A marker csomópontok: EditableRangeStart és EditableRangeEnd
EditableRangeStart és EditableRangeEnd lezárt Node alosztályok, amelyek a tartomány határait jelölik a dokumentum tartalmi folyamatában. EditableRangeStart.Id és EditableRangeEnd.Id azonosítják a tartományt; EditableRangeStart.EditableRange közvetlenül eléri a facade objektumot, és EditableRangeEnd.EditableRangeStart visszanyúlik a megfelelő kezdőjelzőhöz. Mivel egyszerű csomópontok, mindkettő támogatja a szabványos Node tagokat – ParentNode, Document, PreviousSibling, NextSibling és Remove() az egyes jelzők törléséhez.
Hozzáférés korlátozása EditorType segítségével
EditorType felsorolja azokat a szerkesztőcsoportokat, amelyeket egy EditableRange.EditorGroup hivatkozhat: Administrators, Contributors, Editors, Owners, Everyone, Current, None és Unspecified (szintén elérhető Default néven, amely a Unspecified szinonimája).
Tippek és legjobb gyakorlatok
- Használd a
GetChildNodes(NodeType.EditableRangeStart, true)aisDeep: truesegítségével, hogy szerkeszthető tartományokat találj a dokumentum bármely részén, nem csak egy csomópont közvetlen gyermekeinél. - Olvasd el együtt a
EditableRange.SingleUserés aEditorGroupdokumentumokat, hogy meghatározd, kire korlátozódik egy tartomány – egy tartomány egy konkrét felhasználóra, egy szerkesztőcsoportra vagy egyikre sem korlátozható. - Hívd meg a
EditableRange.Remove()(a facade-on) ahelyett, hogy egyenként eltávolítanád aEditableRangeStartésEditableRangeEndjelzőcsomópontokat, így a tartomány mindkét vége konzisztensen lesz megtisztítva.
Gyakori problémák
| Probléma | Ok | Javítás |
|---|---|---|
| Nem találhatók szerkeszthető tartományok, annak ellenére, hogy a dokumentum korlátozott szerkesztéssel rendelkezik. | A keresés az alapértelmezett (sekély) GetChildNodes hívást használta. | Add meg isDeep: true-t, hogy a keresés az egész dokumentum alstruktúrájára kiterjedjen. |
| Egy szerkeszthető tartomány eltávolítása nem távolítja el a benne lévő szöveget. | EditableRange.Remove() csak a tartományjelölőket és a szerkesztési mentességet távolítja el, nem a közöttük lévő tartalmat. | Ez várható – töröld a tartalmat külön, ha azt is el kell távolítani. |
EditorGroup úgy jelenik meg, mint Unspecified, annak ellenére, hogy a Word egy névvel ellátott csoportot mutat. | A tartomány szerkesztőcsoportja a forrásdokumentumban EditorType.Unspecified/Default értékre térképeződik, a névvel ellátott csoportok egyik értéke helyett. | Ellenőrizze a(z) SingleUser is – a tartomány helyett egy egyéni felhasználóra is korlátozható |
FAQ
Hogyan találom meg a dokumentumban az összes szerkeszthető tartományt?
Hívja a Document.GetChildNodes(NodeType.EditableRangeStart, true) függvényt, majd olvassa el a EditableRange tulajdonságot minden visszaadott EditableRangeStart csomóponton.
Hogyan tudom megállapítani, hogy ki szerkesztheti a megadott tartományt?
Olvassa el a EditableRange.SingleUser (egy konkrét felhasználó) és a EditableRange.EditorGroup (egy EditorType szerkesztőcsoport) értékeket a felületobjektumon.
Hogyan távolíthatok el egy szerkesztési korlátozást a dokumentum egy részéből?
Hívja a Remove() függvényt a EditableRange felületobjektumon azon a tartománynál.
Mi a különbség a EditableRangeStart.EditableRange és a EditableRangeEnd.EditableRangeStart között?
EditableRangeStart.EditableRange közvetlenül eléri a teljes tartományt leíró felület objektumot. EditableRangeEnd.EditableRangeStart visszanyúlik a megfelelő kezdőjelző csomópontra, amelyről EditableRange ezután elérhető.
API Reference összegzés
| Osztály / Enum | Leírás |
|---|---|
EditableRange | Fasada egy szerkeszthető tartományhoz: Id, SingleUser, EditorGroup, Remove() |
EditableRangeStart | Csomópont, amely jelöli egy tartomány kezdetét; Id, EditableRange |
EditableRangeEnd | Csomópont, amely jelöli egy tartomány végét; Id, EditableRangeStart |
EditorType | A szerkesztői csoportok enumja: Administrators, Contributors, Editors, Owners, Everyone, Current, None, Unspecified/Default |