Bookmarks
Bookmarks
यह गाइड दिखाता है कि Aspose.Words FOSS for .NET के साथ Word दस्तावेज़ में बुकमार्क को कैसे पढ़ें, सम्मिलित करें, नेविगेट करें और हटाएँ। एक बुकमार्क नामित स्थान या सामग्री की रेंज को चिन्हित करता है ताकि उसे खोजा जा सके, उस तक पहुँचा जा सके, या आगे के संपादन के लिए इंसर्शन पॉइंट के रूप में उपयोग किया जा सके। Aspose.Words FOSS for .NET बुकमार्क को Bookmark, BookmarkStart, और BookmarkEnd क्लासेस के साथ दर्शाता है, और DocumentBuilder मेथड्स प्रदान करता है जो दस्तावेज़ लिखते या संपादित करते समय बुकमार्क बनाने और खोजने में मदद करते हैं।
बुकमार्क पढ़ना
प्रत्येक Range अपने अंदर मौजूद बुकमार्क को Bookmarks प्रॉपर्टी के माध्यम से उजागर करता है, जो एक BookmarkCollection लौटाती है। चूँकि Document स्वयं एक Range प्रदान करता है, doc.Range.Bookmarks दस्तावेज़ में सभी बुकमार्क लौटाता है। नाम के आधार पर विशिष्ट बुकमार्क को BookmarkCollection इंडेक्सर — bookmarks[bookmarkName] — द्वारा खोजें, Count से उनकी संख्या जाँचें, या GetEnumerator() से पूरी संग्रह पर चलें। प्रत्येक Bookmark अपना Name और वह पाठ जो वह समाहित करता है, Text के द्वारा प्रकट करता है।
DocumentBuilder के साथ बुकमार्क सम्मिलित करना
DocumentBuilder दस्तावेज़ लिखते समय बुकमार्क बनाने का सामान्य तरीका है। सामग्री सम्मिलित करने से पहले StartBookmark(bookmarkName) को कॉल करें, फिर उसके बाद EndBookmark(bookmarkName) — बिल्डर बीच में लिखी गई सभी सामग्री को बुकमार्क्ड रेंज में लपेट देता है। टेबल के कॉलम की रेंज के लिए, StartColumnBookmark(bookmarkName) और EndColumnBookmark(bookmarkName) का प्रयोग करें; परिणामी Bookmark.IsColumn true है, जिसमें FirstColumn और LastColumn द्वारा चिह्नित कॉलम रेंज को पहचाना जाता है। मौजूदा बुकमार्क पर आगे के संपादन के लिए बिल्डर को पुन: स्थित करने हेतु, MoveToBookmark(bookmarkName) को कॉल करें, या ओवरलोड MoveToBookmark(bookmarkName, isStart, isAfter) का उपयोग करके यह निर्धारित करें कि कर्सर बुकमार्क के कौन से सिरे पर स्थित होगा।
दस्तावेज़ ट्री में बुकमार्क संरचना
एक बुकमार्क को दस्तावेज़ ट्री में दो नोड्स के युग्म के रूप में दर्शाया जाता है: BookmarkStart और BookmarkEnd, दोनों को BookmarkStart(doc, name) / BookmarkEnd(doc, name) के रूप में निर्मित किया गया है। प्रत्येक अपने तर्कसंगत Bookmark वस्तु की ओर लिंक करता है — BookmarkStart.Bookmark इसे लौटाता है, और Bookmark क्रमशः BookmarkStart और BookmarkEnd गुण प्रदान करता है जो उसके दो सीमा नोड्स की ओर संकेत करते हैं। क्योंकि BookmarkStart और BookmarkEnd सामान्य नोड्स हैं, वे GetText(), Clone(isCloneChildren), और GetAncestor(ancestorType) जैसी मानक नोड संचालन का समर्थन करते हैं, और ट्री को चलते हुए किसी भी अन्य नोड प्रकार की तरह पता लगाए जा सकते हैं।
बुकमार्क हटाना
एकल बुकमार्क के प्रारंभ और समाप्ति मार्कर हटाने के लिए Bookmark.Remove() को कॉल करें — यह बुकमार्क स्वयं को हटाता है, दस्तावेज़ की वह सामग्री नहीं जिसे वह घेरता है। कई बुकमार्क एक साथ हटाने के लिए, BookmarkCollection.Remove(bookmark), Remove(bookmarkName), RemoveAt(index) या Clear() का उपयोग करें ताकि सीमा में मौजूद सभी बुकमार्क एक बार में हटाए जा सकें।
टिप्स और सर्वोत्तम प्रथाएँ
- जब आप लक्ष्य बुकमार्क का नाम पहले से जानते हैं, तो मैनुअल इटरेशन की बजाय
BookmarkCollectionइंडेक्सर (bookmarks["BookmarkName"]) को प्राथमिकता दें। - हमेशा एक
StartBookmark(name)कॉल को समान नाम के साथ मिलान करने वालेEndBookmark(name)कॉल के साथ जोड़ें — असंगत जोड़े बुकमार्क को अधूरा छोड़ देते हैं। FirstColumnयाLastColumnपढ़ने से पहलेBookmark.IsColumnकी जाँच करें — ये दो गुण केवल उन कॉलम बुकमार्क्स के लिए अर्थपूर्ण हैं जोStartColumnBookmark/EndColumnBookmarkसे बनाए गए हैं।Bookmark.Remove()केवल बुकमार्क मार्कर को हटाता है, घिरी हुई पाठ को नहीं, इसलिए बुकमार्क हटाने से कभी दस्तावेज़ की सामग्री नहीं हटती।DocumentBuilder.MoveToBookmark()का उपयोग करके बिल्डर के कर्सर को ज्ञात स्थान पर ले जाएँ, बजाय किBookmarkStartके लिए नोड ट्री को मैन्युअली खोजें।
आम समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
BookmarkCollection इंडेक्सर नाम खोज के लिए null लौटाता है | बुकमार्क नाम खोजी जा रही सीमा में मौजूद नहीं है | सटीक, केस-सेंसिटिव नाम की पुष्टि करने के लिए पहले GetEnumerator() के माध्यम से नामों की सूची बनाएं |
| डाली गई सामग्री बुकमार्क नहीं है | EndBookmark() कभी कॉल नहीं किया गया, या इसे StartBookmark() से अलग नाम के साथ कॉल किया गया | हमेशा StartBookmark(name) को EndBookmark(name) के साथ समान नाम स्ट्रिंग का उपयोग करके मिलाएँ |
| कॉलम बुकमार्क डेटा गलत दिख रहा है | FirstColumn/LastColumn को पहले IsColumn की जाँच किए बिना पढ़ा गया | केवल FirstColumn/LastColumn को तब व्याख्या करें जब Bookmark.IsColumn true हो |
FAQ
मैं दस्तावेज़ में सभी बुकमार्क कैसे प्राप्त करूँ?
doc.Range.Bookmarks पढ़ें, जो पूरे दस्तावेज़ को कवर करने वाला BookmarkCollection लौटाता है।
क्या मैं तालिका के भाग को टेक्स्ट रेंज के बजाय कॉलम द्वारा बुकमार्क कर सकता हूँ?
हाँ — DocumentBuilder.StartColumnBookmark(bookmarkName) और EndColumnBookmark(bookmarkName) का उपयोग करें। परिणामी बुकमार्क में IsColumn को true पर सेट किया जाता है, तथा FirstColumn/LastColumn कॉलम रेंज को दर्शाते हैं।
क्या बुकमार्क हटाने से वह टेक्स्ट हट जाता है जिसे वह चिह्नित करता है?
नं. Bookmark.Remove() केवल BookmarkStart/BookmarkEnd मार्कर नोड्स को हटाता है; बीच में दस्तावेज़ की सामग्री अप्रभावित रहती है।
मैं DocumentBuilder कर्सर को मौजूदा बुकमार्क पर कैसे ले जाऊँ?
कॉल DocumentBuilder.MoveToBookmark(bookmarkName), या MoveToBookmark(bookmarkName, isStart, isAfter) का उपयोग करके तय करें कि कर्सर बुकमार्क की शुरुआत में पहुँचे या अंत में।
BookmarkCollection.Remove() ओवरलोड्स के बीच क्या अंतर है?
Remove(bookmark) एक Bookmark ऑब्जेक्ट लेता है, Remove(bookmarkName) उसका नाम लेता है, और RemoveAt(index) संग्रह में उसकी स्थिति लेता है — ये तीनों एकल बुकमार्क को हटाते हैं, जबकि Clear() संग्रह में सभी बुकमार्क हटाता है।
API Reference सारांश
| क्लास / मेथड | विवरण |
|---|---|
Bookmark | एकल बुकमार्क का प्रतिनिधित्व करता है; Name, Text, IsColumn, FirstColumn, LastColumn और Remove() प्रकट करता है |
BookmarkCollection | एक Range में बुकमार्क; नाम, Remove(), RemoveAt(), Clear(), Count द्वारा अनुक्रमित |
BookmarkStart / BookmarkEnd | डॉक्यूमेंट नोड्स जो बुकमार्क की सीमाओं को चिह्नित करते हैं; Bookmark.BookmarkStart/Bookmark.BookmarkEnd के माध्यम से वापस लिंक करें |
Range.Bookmarks | दिए गए रेंज के लिए BookmarkCollection लौटाता है, जिसमें पूरे दस्तावेज़ के लिए doc.Range.Bookmarks शामिल है |
DocumentBuilder.StartBookmark() / EndBookmark() | डाली गई सामग्री को एक नामित बुकमार्क में लपेटें |
DocumentBuilder.StartColumnBookmark() / EndColumnBookmark() | टेबल कॉलमों की एक रेंज को बुकमार्क के रूप में चिह्नित करें |
DocumentBuilder.MoveToBookmark() | बिल्डर का कर्सर किसी मौजूदा बुकमार्क पर स्थित करता है |