Düzenlenebilir Aralıklarla Çalışma

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: true ile birlikte kullanın, sadece bir düğümün doğrudan çocukları arasında değil.
  • EditableRange.SingleUser ve EditorGroup‘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 EditableRangeStart ve EditableRangeEnd işaretçi düğümlerini tek tek kaldırmak yerine EditableRange.Remove()‘ı (facade üzerinde) çağırın.

Yaygın Sorunlar

SorunNedenDü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ırmazEditableRange.Remove() yalnızca aralık işaretçilerini ve düzenleme istisnasını kaldırır, aradaki içeriği değilBu beklenen bir durum – içerik de silinmesi gerekiyorsa ayrı olarak silin
EditorGroup, Word bir adlandırılmış grup gösterse bile Unspecified olarak okunurKaynak belgede aralığın düzenleyici grubu, adlandırılmış grup değerlerinden biri yerine EditorType.Unspecified/Default olarak eşlenirAyrı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 / EnumAçıklama
EditableRangeBir düzenlenebilir aralık için facade: Id, SingleUser, EditorGroup, Remove()
EditableRangeStartBir aralığın başlangıcını işaretleyen düğüm; Id, EditableRange
EditableRangeEndAralığın sonunu işaretleyen düğüm; Id, EditableRangeStart
EditorTypeDüzenleme gruplarının enum’ı: Administrators, Contributors, Editors, Owners, Everyone, Current, None, Unspecified/Default

Ayrıca Bakınız

 Türkçe