टेक्स्ट के साथ काम करना
पाठ के साथ काम करना
Word दस्तावेज़ में पाठ को Run नोड्स (एक ही फ़ॉन्ट फ़ॉर्मेटिंग साझा करने वाले निरंतर अक्षर) में व्यवस्थित किया जाता है, जो Paragraph नोड्स के अंदर समूहित होते हैं। Aspose.Words FOSS for .NET दोनों को सीधे उजागर करता है, साथ ही Font अक्षर फ़ॉर्मेटिंग के लिए, ParagraphFormat पैराग्राफ-स्तर फ़ॉर्मेटिंग के लिए, और Range पेड़ के किसी भी भाग पर पाठ पढ़ने या बदलने के लिए। यह मार्गदर्शिका रन और फ़ॉन्ट्स, पैराग्राफ फ़ॉर्मेटिंग, पाठ पढ़ने और बदलने, टिप्पणी, और पैराग्राफ-स्तर सूची फ़ॉर्मेटिंग को कवर करती है।
रन और अक्षर फ़ॉर्मेटिंग
एक Run वह पाठ का भाग दर्शाता है जो एक ही फ़ॉर्मेटिंग सेट साझा करता है; इसकी Text प्रॉपर्टी साधारण-पाठ सामग्री रखती है और उसकी Font प्रॉपर्टी (एक Font ऑब्जेक्ट) अक्षर-स्तर की फ़ॉर्मेटिंग रखती है — Name, Size, Bold, Italic, Underline, Color, HighlightColor, Subscript/Superscript, StrikeThrough, और कई और। Font.ClearFormatting() एक रन के फ़ॉन्ट को डिफ़ॉल्ट पर रीसेट करता है। पैराग्राफ के रन उसके Runs प्रॉपर्टी के माध्यम से उपलब्ध होते हैं, जो एक RunCollection है।
पैराग्राफ और पैराग्राफ फ़ॉर्मेटिंग
Paragraph एक संयुक्त नोड है जिसमें एक पैराग्राफ के रन (और अन्य इनलाइन सामग्री) शामिल होते हैं; एक दस्तावेज़ या बॉडी के पैराग्राफ को ParagraphCollection (Body.Paragraphs) के रूप में उजागर किया जाता है। Paragraph.ParagraphFormat (एक ParagraphFormat ऑब्जेक्ट) पैराग्राफ-स्तर लेआउट को नियंत्रित करता है — Alignment, इंडेंट्स (LeftIndent, RightIndent, FirstLineIndent), स्पेसिंग (SpaceBefore, SpaceAfter, LineSpacing, LineSpacingRule), और पेजिनेशन व्यवहार (KeepTogether, KeepWithNext, PageBreakBefore, WidowControl)। ParagraphFormat.ClearFormatting() इन्हें डिफ़ॉल्ट पर रीसेट करता है, और Paragraph.JoinRunsWithSameFormatting() समान फ़ॉर्मेटिंग वाले निकटवर्ती रन को मिलाता है।
रेंज के साथ पाठ पढ़ना और बदलना
जिस भी नोड में सामग्री होती है — एक Document, Section, Paragraph, या Run — वह एक Range को उजागर करता है। Range.Text उस रेंज के भीतर की सभी चीज़ों का सादा पाठ लौटाता है, और Range.Replace(pattern, replacement) केवल उसी रेंज तक सीमित खोज-और-प्रतिस्थापन करता है, इसलिए आप उदाहरण के लिए, एक पैराग्राफ के भीतर का पाठ बदल सकते हैं बिना दस्तावेज़ के बाकी हिस्से को छुए। Range.Delete() रेंज की सामग्री को पूरी तरह हटा देता है।
Comments
एक Comment नोड टिप्पणी को पाठ में किसी स्थान पर एंकर करता है; इसे new Comment(doc, author, initial, dateTime) से बनाएं और उसके बॉडी टेक्स्ट को SetText(text) से सेट करें, फिर इसे किसी अन्य नोड की तरह दस्तावेज़ में डालें। Comment.AddReply(author, initial, dateTime, text) एक थ्रेडेड उत्तर संलग्न करता है, और RemoveReply(reply) / RemoveAllReplies() उन्हें हटाते हैं। दस्तावेज़ की टिप्पणियों को एक CommentCollection में इकट्ठा किया जाता है।
पैराग्राफ स्तर पर सूची स्वरूपण
Paragraph.ListFormat (एक ListFormat वस्तु) यह रिपोर्ट करता है और नियंत्रित करता है कि पैराग्राफ सूची का हिस्सा है या नहीं: IsListItem और ListLevelNumber उसकी वर्तमान स्थिति रिपोर्ट करते हैं, ApplyBulletDefault() और ApplyNumberDefault() पैराग्राफ को डिफ़ॉल्ट बुलेटेड या क्रमांकित सूची आइटम में बदलते हैं, ListIndent() / ListOutdent() उसकी सूची नेस्टिंग स्तर को बदलते हैं, और RemoveNumbers() इसे फिर से सामान्य पैराग्राफ बनाता है।
सलाह और सर्वोत्तम प्रथाएँ
- टेक्स्ट को बिल्डर के साथ लिखने से पहले
DocumentBuilder.Fontपर फ़ॉन्ट गुण सेट करें, बजाय इसके कि पहले टेक्स्ट लिखें और बाद में व्यक्तिगतRunवस्तुओं को पुन: स्वरूपित करें। Range.Replaceको सबसे छोटे रेंज तक सीमित रखें जो वास्तव में बदलना चाहते हैं — इसे पूरे दस्तावेज़ के बजाय एकParagraphयाSectionकी रेंज पर कॉल करें जब परिवर्तन पूरे दस्तावेज़ पर लागू नहीं होना चाहिए।- अनावश्यक रूप से खंडित रन संरचना से बचने के लिए प्रोग्रामेटिक संपादन की श्रृंखला के बाद
Paragraph.JoinRunsWithSameFormatting()को कॉल करें। - जब अंतर्निहित डिफ़ॉल्ट पर्याप्त हों, तो सूची परिभाषाओं को मैन्युअल रूप से बनाने के बजाय त्वरित डिफ़ॉल्ट सूची के लिए
ListFormat.ApplyBulletDefault()/ApplyNumberDefault()का उपयोग करें। Comment.AddReplyपरिणामों कोCommentनोड्स के रूप में पढ़ें — प्रतिक्रियाएँ पूर्ण टिप्पणी ऑब्जेक्ट होती हैं, साधारण स्ट्रिंग नहीं।
सामान्य समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
एक Run के Font को फॉर्मेट करने से आस-पास के टेक्स्ट में दृश्य परिवर्तन नहीं होता है | आस-पास का टेक्स्ट एक अलग Run में है, जिसके अपने Font इंस्टेंस हैं | प्रभावित प्रत्येक Run को ढूँढें और फॉर्मेट करें, या लिखने से पहले DocumentBuilder.Font के माध्यम से फॉर्मेटिंग सेट करें |
Range.Replace इच्छित क्षेत्र के बाहर का टेक्स्ट बदल देता है | Replace को Document.Range पर बुलाया गया, न कि किसी संकुचित नोड की रेंज पर | विशिष्ट Paragraph, Section, या अन्य नोड के Range पर Replace को कॉल करें |
एक पैराग्राफ सूची आइटम जैसा दिखता है लेकिन IsListItem गलत है | बुलेट/संख्या मैन्युअल टेक्स्ट है, वास्तविक सूची फ़ॉर्मेटिंग नहीं है | टाइप किए गए अक्षरों के बजाय ListFormat.ApplyBulletDefault() या ApplyNumberDefault() के साथ वास्तविक सूची फ़ॉर्मेटिंग लागू करें |
दस्तावेज़ में अपेक्षा से कई अधिक Run नोड्स हैं | बार-बार छोटे संपादनों से रन विभाजित हो जाते हैं और वे पुनः नहीं जुड़ते | संपादनों के बैच के बाद Paragraph.JoinRunsWithSameFormatting() को कॉल करें |
FAQ
Run और Paragraph में क्या अंतर है?
Run वह टेक्स्ट का भाग है जो एक समान कैरेक्टर फ़ॉर्मेटिंग सेट (Font) साझा करता है; Paragraph वह संयोजित नोड है जिसमें एक या अधिक रन (और अन्य इनलाइन सामग्री) तथा पैराग्राफ-स्तर की फ़ॉर्मेटिंग (ParagraphFormat) शामिल होती है।
मैं दस्तावेज़ या सेक्शन में सभी टेक्स्ट को कैसे पढ़ूँ?
उस नोड के Range की Text प्रॉपर्टी पढ़ें — उदाहरण के लिए, document.Range.Text या section.Range.Text।
मैं केवल एक पैराग्राफ में टेक्स्ट को कैसे खोजूँ और बदलूँ?
उस Paragraph के Range पर Replace(pattern, replacement) कॉल करें, Document.Range पर नहीं।
मैं दस्तावेज़ में टिप्पणी कैसे जोड़ूँ?
इसे new Comment(doc, author, initial, dateTime) से बनाएं, उसका टेक्स्ट SetText(text) से सेट करें, और इसे ट्री में सम्मिलित करें; इसके जवाब में Comment.AddReply(author, initial, dateTime, text) का उपयोग करें।
मैं पैराग्राफ को बुलेटेड सूची आइटम में कैसे बदलूँ?
उस पैराग्राफ के ListFormat पर ApplyBulletDefault() कॉल करें; क्रमांकित सूची के लिए ApplyNumberDefault() का उपयोग करें।
API Reference सारांश
| क्लास/मेथड | विवरण |
|---|---|
Run | एक टेक्स्ट स्पैन जो एक सेट कैरेक्टर फ़ॉर्मेटिंग साझा करता है। |
Font | अक्षर-स्तर स्वरूपण — नाम, आकार, bold, italic, रंग, और अधिक। |
Paragraph | Composite node जिसमें एक पैराग्राफ के रन और स्वरूपण होते हैं। |
ParagraphFormat | पैराग्राफ-स्तर का स्वरूपण — alignment, indents, spacing, pagination. |
ParagraphCollection | टाइप्ड कलेक्शन Paragraph नोड्स का, उदाहरण के तौर पर Body.Paragraphs. |
Range | दस्तावेज़ का एक निरंतर क्षेत्र; Text, Replace, और Delete का समर्थन करता है। |
Comment | पाठ में किसी स्थान पर एंकर किया गया थ्रेडेड टिप्पणी। |
CommentCollection | दस्तावेज़ की टिप्पणियों का संग्रह। |
ListFormat | नियंत्रित करता है कि पैराग्राफ सूची में भाग लेता है या नहीं, तथा किस प्रकार। |