संपादन योग्य रेंज के साथ काम करना
संपादन योग्य रेंज के साथ काम करना
यह गाइड दिखाता है कि संपादन योग्य रेंजेज़ की जाँच और हटाना कैसे किया जाए – वे क्षेत्र जिनसे Word की “Restrict Editing” सुविधा दस्तावेज़ की कुल संपादन प्रतिबंध से मुक्त करती है, वैकल्पिक रूप से किसी विशिष्ट उपयोगकर्ता या समूह तक सीमित — में Aspose.Words FOSS के लिए .NET. एक संपादन योग्य रेंज दस्तावेज़ ट्री में दो मार्कर नोड्स की जोड़ी द्वारा घेरित होती है, EditableRangeStart and EditableRangeEnd, और इसे संपूर्ण रूप से द्वारा वर्णित किया जाता है EditableRange facade class.
दस्तावेज़ में संपादन योग्य रेंज ढूँढ़ना
संपादन योग्य रेंज के लिए कोई एकल संग्रह गुण नहीं है; उन्हें नोड ट्री को चलाकर खोजें। CompositeNode.GetChildNodes(nodeType, isDeep) with NodeType.EditableRangeStart दस्तावेज़ में प्रत्येक EditableRangeStart नोड (या उपवृक्ष में, यदि Document के अलावा किसी नोड पर बुलाया गया हो) लौटाता है। प्रत्येक EditableRangeStart.EditableRange गुण तब संबंधित EditableRange फ़ेसाड ऑब्जेक्ट लौटाता है।
The EditableRange फ़ेसाड
EditableRange एक एकल संपादन योग्य रेंज को संपूर्ण रूप में वर्णित करता है: Id इसे पहचानता है, SingleUser वैकल्पिक रूप से उस विशिष्ट उपयोगकर्ता का नाम देता है जिसे इसे संपादित करने की अनुमति है, और EditorGroup (एक EditorType मान) वैकल्पिक रूप से इसके बजाय एक संपादन समूह का नाम देता है। EditableRangeStart और EditableRangeEnd दस्तावेज़ में रेंज को घेरने वाले मार्कर नोड्स की जोड़ी लौटाते हैं। EditableRange.Remove() संपादन योग्य रेंज को हटा देता है – उस क्षेत्र के लिए संपादन प्रतिबंध छूट को हटाते हुए, बिना उसके अंदर की दस्तावेज़ सामग्री को हटाए।
मार्कर नोड्स: EditableRangeStart और EditableRangeEnd
EditableRangeStart और EditableRangeEnd sealed Node subclasses हैं जो दस्तावेज़ की सामग्री प्रवाह में एक रेंज की सीमाओं को चिह्नित करते हैं। EditableRangeStart.Id और EditableRangeEnd.Id रेंज की पहचान करते हैं; EditableRangeStart.EditableRange सीधे façade ऑब्जेक्ट तक पहुँचता है, और 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को साथ पढ़ें — एक रेंज को एक विशिष्ट उपयोगकर्ता, एक संपादन समूह, या दोनों में से किसी के लिए भी सीमित किया जा सकता है। - रेंज के दोनों छोर को निरंतर रूप से साफ़ करने के लिए
EditableRangeStartऔरEditableRangeEndमार्कर नोड्स को अलग-अलग हटाने के बजाय, (facade पर)EditableRange.Remove()को कॉल करें।
सामान्य समस्याएँ
| समस्या | कारण | सुधारें |
|---|---|---|
| हालांकि दस्तावेज़ में सीमित संपादन है, फिर भी कोई संपादन योग्य रेंज नहीं मिली। | खोज ने डिफ़ॉल्ट (उथला) GetChildNodes कॉल का उपयोग किया। | पूर्ण दस्तावेज़ के सबट्री को कवर करने के लिए isDeep: true पास करें। |
| एक संपादन योग्य रेंज को हटाने से उसके भीतर का टेक्स्ट नहीं हटता। | EditableRange.Remove() केवल रेंज मार्कर और संपादन छूट को हटाता है, उनके बीच की सामग्री को नहीं। | यह अपेक्षित है — यदि सामग्री को भी हटाना है तो उसे अलग से हटाएँ। |
EditorGroup पढ़ा जाता है Unspecified के रूप में जबकि Word एक नामित समूह दिखाता है | स्रोत दस्तावेज़ में रेंज के संपादक समूह का मान EditorType.Unspecified/Default है, न कि नामित समूह मूल्यों में से किसी एक के | साथ ही SingleUser जांचें — रेंज किसी व्यक्तिगत उपयोगकर्ता तक सीमित हो सकती है |
FAQ
मैं दस्तावेज़ में सभी संपादन योग्य रेंजेज़ कैसे खोजूं?
Document.GetChildNodes(NodeType.EditableRangeStart, true) को कॉल करें, फिर लौटाए गए प्रत्येक EditableRangeStart नोड पर EditableRange प्रॉपर्टी पढ़ें।
मैं यह कैसे पता करूं कि किसी दिए गए रेंज को संपादित करने की अनुमति किसको है?
फ़ेसाड ऑब्जेक्ट पर EditableRange.SingleUser (एक विशिष्ट उपयोगकर्ता) और EditableRange.EditorGroup (EditorType संपादन समूह) पढ़ें।
मैं दस्तावेज़ के किसी भाग से संपादन प्रतिबंध कैसे हटाऊँ?
उस रेंज के लिए EditableRange फ़ेसाड ऑब्जेक्ट पर Remove() को कॉल करें।
EditableRangeStart.EditableRange और EditableRangeEnd.EditableRangeStart में क्या अंतर है?
EditableRangeStart.EditableRange सीधे पूरे रेंज का वर्णन करने वाले फ़ेसाड ऑब्जेक्ट तक पहुँचता है। EditableRangeEnd.EditableRangeStart संबंधित प्रारंभ मार्कर नोड तक वापस पहुँचता है, जिससे EditableRange फिर से पहुँचा जा सकता है।
API Reference सारांश
| क्लास / एनम | विवरण |
|---|---|
EditableRange | एक संपादन योग्य रेंज के लिए फ़ेसेड: Id, SingleUser, EditorGroup, Remove() |
EditableRangeStart | रेंज की शुरुआत को दर्शाने वाला नोड; Id, EditableRange |
EditableRangeEnd | रेंज के अंत को दर्शाने वाला नोड; Id, EditableRangeStart |
EditorType | संपादन समूहों का एनम: Administrators, Contributors, Editors, Owners, Everyone, Current, None, Unspecified/Default |