Düzenlenebilir Aralıklarla Çalışma
Düzenlenebilir Aralıklarla Çalışma
Bu rehber, düzenlenebilir aralıkları nasıl inceleyeceğinizi ve kaldıracağınızı gösterir – Word’ün “Restrict Editing” özelliğinin bir belgenin genel düzenleme kısıtlamasından muaf tuttuğu bölgeler, isteğe bağlı olarak belirli bir kullanıcıya veya gruba göre kapsamlandırılmıştır – içinde Aspose.Words FOSS için .NET. Düzenlenebilir bir aralık, belge ağacında bir çift işaretçi düğüm tarafından parantez içine alınır, EditableRangeStart and EditableRangeEnd, ve bütün olarak tarafından tanımlanır EditableRange fasad sınıfı.
Bir Belgede Düzenlenebilir Aralıkları Bulma
Düzenlenebilir aralıklar için tek bir koleksiyon özelliği yoktur; bunları düğüm ağacını dolaşarak bulun. CompositeNode.GetChildNodes(nodeType, isDeep) ile NodeType.EditableRangeStart, belgede (veya Document dışındaki bir düğümde çağrıldığında bir alt ağaçta) her EditableRangeStart düğümünü döndürür. Her EditableRangeStart.EditableRange özelliği daha sonra ilgili EditableRange dış yüz nesnesini döndürür.
EditableRange Facade
EditableRange, tek bir düzenlenebilir aralığı bütün olarak tanımlar: Id onu tanımlar, SingleUser isteğe bağlı olarak düzenlemesine izin verilen belirli bir kullanıcıyı adlandırır ve EditorGroup (bir EditorType değeri) bunun yerine isteğe bağlı olarak bir düzenleme grubunu adlandırır. EditableRangeStart ve EditableRangeEnd, belgede aralığı sınırlayan işaretçi düğüm çiftini döndürür. EditableRange.Remove(), düzenlenebilir aralığı kaldırır — o bölge için düzenleme kısıtlaması muafiyetini kaldırır, içindeki belge içeriğini silmeden.
İşaretçi Düğümler: EditableRangeStart ve EditableRangeEnd
EditableRangeStart ve EditableRangeEnd, belge içeriği akışında bir aralığın sınırlarını işaretleyen mühürlü Node alt sınıflardır. EditableRangeStart.Id ve EditableRangeEnd.Id aralığı tanımlar; EditableRangeStart.EditableRange doğrudan facade nesnesine ulaşır ve EditableRangeEnd.EditableRangeStart karşılık gelen başlangıç işaretçisine geri döner. Normal düğümler olduklarından, her ikisi de standart Node üyelerini destekler – ParentNode, Document, PreviousSibling, NextSibling ve Remove() tek tek işaretçiyi silmek için.
Erişimi EditorType ile Kısıtlama
EditorType, bir EditableRange.EditorGroup‘in başvurabileceği düzenleme gruplarını listeler: Administrators, Contributors, Editors, Owners, Everyone, Current, None ve Unspecified (aynı zamanda Default olarak da bulunur, Unspecified için bir takma addır).
İpuçları ve En İyi Uygulamalar
- Belgenin herhangi bir yerinde düzenlenebilir aralıkları bulmak için
GetChildNodes(NodeType.EditableRangeStart, true)‘ıisDeep: trueile birlikte kullanın, sadece bir düğümün doğrudan çocukları arasında değil. EditableRange.SingleUserveEditorGroup‘i birlikte okuyarak bir aralığın kime kısıtlandığını belirleyin – bir aralık belirli bir kullanıcıya, bir düzenleme grubuna ya da hiç birine sınırlı olabilir.- Aralığın her iki ucunun tutarlı bir şekilde temizlenmesi için
EditableRangeStartveEditableRangeEndişaretçi düğümlerini tek tek kaldırmak yerineEditableRange.Remove()‘ı (facade üzerinde) çağırın.
Yaygın Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
| Belge kısıtlı düzenleme içermesine rağmen düzenlenebilir aralıklar bulunamadı | Arama, varsayılan (sığ) GetChildNodes çağrısını kullandı | Aramanın tüm belge alt ağacını kapsaması için isDeep: true geçirin |
| Düzenlenebilir bir aralığı kaldırmak, içinde bulunan metni kaldırmaz | EditableRange.Remove() yalnızca aralık işaretçilerini ve düzenleme istisnasını kaldırır, aradaki içeriği değil | Bu beklenen bir durum – içerik de silinmesi gerekiyorsa ayrı olarak silin |
EditorGroup, Word bir adlandırılmış grup gösterse bile Unspecified olarak okunur | Kaynak belgede aralığın düzenleyici grubu, adlandırılmış grup değerlerinden biri yerine EditorType.Unspecified/Default olarak eşlenir | Ayrıca SingleUser kontrol edin – aralık bunun yerine bireysel bir kullanıcıya sınırlandırılabilir |
FAQ
Bir belgede tüm düzenlenebilir aralıkları nasıl bulurum?
Çağır Document.GetChildNodes(NodeType.EditableRangeStart, true), ardından döndürülen her EditableRangeStart düğümünde EditableRange özelliğini oku.
Belirli bir aralığı kimlerin düzenleyebileceğini nasıl öğrenirim?
Facade nesnesinde EditableRange.SingleUser (belirli bir kullanıcı) ve EditableRange.EditorGroup (EditorType düzenleme grubu) okuyun.
Bir belgenin bir bölümünden düzenleme kısıtlamasını nasıl kaldırırım?
Bu aralık için EditableRange facade nesnesinde Remove() çağırın.
EditableRangeStart.EditableRange ile EditableRangeEnd.EditableRangeStart arasındaki fark nedir?
EditableRangeStart.EditableRange tüm aralığı tanımlayan facade nesnesine doğrudan ulaşır. EditableRangeEnd.EditableRangeStart ilgili başlangıç işaretleyici düğümüne geri döner, buradan EditableRange daha sonra ulaşılabilir.
API Reference Özeti
| Sınıf / Enum | Açıklama |
|---|---|
EditableRange | Bir düzenlenebilir aralık için facade: Id, SingleUser, EditorGroup, Remove() |
EditableRangeStart | Bir aralığın başlangıcını işaretleyen düğüm; Id, EditableRange |
EditableRangeEnd | Aralığın sonunu işaretleyen düğüm; Id, EditableRangeStart |
EditorType | Düzenleme gruplarının enum’ı: Administrators, Contributors, Editors, Owners, Everyone, Current, None, Unspecified/Default |