सेक्शन के साथ काम करना
सेक्शन के साथ काम करना
एक Word दस्तावेज़ को एक या अधिक अनुभागों में विभाजित किया जाता है, प्रत्येक का अपना पृष्ठ सेटअप, मार्जिन, हेडर और फुटर होता है। Aspose.Words FOSS .NET के लिए एक अनुभाग को इस प्रकार प्रस्तुत करता है Section नोड, जिसमें एक Body और, वैकल्पिक रूप से, हेडर और फुटर, साथ ही एक PageSetup जो इसके लेआउट को नियंत्रित करता है। यह पृष्ठ सेक्शन ऑब्जेक्ट मॉडल, पृष्ठ सेटअप, हेडर और फुटर, तथा बहु-स्तंभ पाठ लेआउट को कवर करता है।
सेक्शन ऑब्जेक्ट मॉडल
Document.Sections एक SectionCollection लौटाता है – दस्तावेज़ में प्रत्येक Section, प्रत्येक एक CompositeNode और नोड ट्री का हिस्सा। एक Section में एक Body होता है (एक Story जो सेक्शन के मुख्य पैराग्राफ और तालिकाएँ रखता है) और, यदि मौजूद हो, तो HeaderFooter नोड्स जो Section.HeadersFooters के माध्यम से पहुंच योग्य होते हैं, एक HeaderFooterCollection। Document.FirstSection और Document.LastSection सीमा सेक्शनों तक सीधी पहुँच प्रदान करते हैं। Section.AppendContent(), PrependContent(), और ClearContent() सेक्शन की बॉडी सामग्री को बड़े पैमाने पर संशोधित करते हैं, जबकि ClearHeadersFooters() और DeleteHeaderFooterShapes() हेडर/फूटर सामग्री को साफ़ करते हैं।
सेक्शन और सेक्शन ब्रेक बनाना
DocumentBuilder.InsertBreak(BreakType) कर्सर पर एक ब्रेक डालता है; BreakType में SectionBreakNewPage, SectionBreakContinuous, SectionBreakNewColumn, SectionBreakEvenPage, और SectionBreakOddPage शामिल हैं जो एक नया सेक्शन शुरू करने के लिए हैं, साथ ही गैर-सेक्शन मान PageBreak, ColumnBreak, LineBreak, और ParagraphBreak। DocumentBuilder.MoveToSection() कर्सर को किसी विशिष्ट सेक्शन की बॉडी की शुरुआत में ले जाता है। PageSetup.SectionStart मौजूदा सेक्शन पर दर्ज SectionStart ब्रेक प्रकार को पढ़ता या सेट करता है।
पेज सेटअप
Section.PageSetup एक PageSetup इंस्टेंस है जो पृष्ठ आयाम और मार्जिन (PageWidth, PageHeight, TopMargin, BottomMargin, LeftMargin, RightMargin, Gutter), Orientation और PaperSize, तथा प्रत्येक पक्ष के पृष्ठ बॉर्डर (Borders, BorderAppliesTo के माध्यम से PageBorderAppliesTo, BorderDistanceFrom के माध्यम से PageBorderDistanceFrom, BorderAlwaysInFront, BorderSurroundsHeader, BorderSurroundsFooter) को कवर करता है। लाइन-नंबरिंग को LineNumberRestartMode, LineNumberCountBy, LineNumberDistanceFromText, और LineStartingNumber द्वारा नियंत्रित किया जाता है। PageSetup.ClearFormatting() इसे डिफ़ॉल्ट पर रीसेट कर देता है।
हेडर और फुटर
Section.HeadersFooters एक HeaderFooterCollection है जिसमें टाइप्ड एक्सेसर हैं – HeaderPrimary, HeaderFirst, HeaderEven, FooterPrimary, FooterFirst, FooterEven – साथ ही GetByHeaderFooterType(), Add(), और LinkToPrevious()। प्रत्येक HeaderFooter एक Story है (जैसे Body) जिसे उसके HeaderFooterType द्वारा पहचाना जाता है और जो IsHeader / IsLinkedToPrevious के रूप में चिह्नित है। PageSetup.DifferentFirstPageHeaderFooter और PageSetup.OddAndEvenPagesHeaderFooter यह नियंत्रित करते हैं कि Word को पहले पृष्ठ और सम पृष्ठ हेडर/फुटर वैरिएंट्स का उपयोग करना चाहिए या नहीं।
एकाधिक टेक्स्ट कॉलम
PageSetup.TextColumns एक TextColumnCollection लौटाता है (Count, EvenlySpaced, LineBetween, Spacing, Width) जिसमें SetCount() होता है जिससे सेक्शन के बॉडी को कई कॉलम में व्यवस्थित किया जा सके। व्यक्तिगत कॉलम TextColumn इंस्टेंस होते हैं (Width, SpaceAfter) जब संग्रह में एक से अधिक कॉलम हो जाएँ।
टिप्स और सर्वश्रेष्ठ प्रथाएँ
- एक सेक्शन ब्रेक उस सेक्शन के लिए फ़ॉर्मेटिंग ले जाता है जो follows यह – सेटिंग
PageSetupएक पर गुणSectionआपने अभी बनाया (के बादInsertBreak) ब्रेक के बाद आने वाली सामग्री को प्रभावित करता है, पहले वाली को नहीं। - जब आपको केवल पेज-सेटअप परिवर्तन की आवश्यकता हो (उदाहरण के लिए, मल्टी-कॉलम टेक्स्ट में बदलना) और नया पेज शुरू नहीं करना हो, तो
SectionBreakContinuousका उपयोग करें; जब नया सेक्शन हमेशा एक नई पेज से शुरू होना चाहिए, तोSectionBreakNewPageका उपयोग करें। HeaderFooterCollection.LinkToPrevious()एक सेक्शन के हेडर/फूटर को पुनः कनेक्ट करता है ताकि वह पिछले सेक्शन की सामग्री को विरासत में ले सके – नया हेडर/फूटर सामग्री लिखने से पहले यह करें यदि आप चाहते हैं कि नया सेक्शन पिछले से स्वतंत्र रूप से शुरू हो।PageSetup.DifferentFirstPageHeaderFooterऔरOddAndEvenPagesHeaderFooterकेवल तब प्रभावी होते हैं जब संबंधितHeaderFooterTypeवैरिएंट्स (HeaderFirst,HeaderEven, आदि) वास्तव मेंSection.HeadersFootersमें मौजूद हों – फ़्लैग को सक्षम करें और संबंधित हेडर/फूटर को साथ में जोड़ें।Section.Bodyऔर प्रत्येकHeaderFooterअलग-अलगStoryइंस्टेंस हैं –Range.Fields, बुकमार्क, और सेक्शन केBodyपर अन्य रेंज-स्कोप्ड ऑपरेशन्स स्वचालित रूप से उसके हेडर और फूटर तक नहीं पहुँचते।
आम समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
| नए सेक्शन का पेज सेटअप मेरे सेट किए गए अनुसार नहीं है | PageSetup को गलत Section इंस्टेंस पर सेट किया गया था | सेट PageSetup उस सेक्शन पर जहाँ follows विराम, पहले वाला नहीं |
| पिछले अनुभाग की हेडर/फूटर सामग्री अप्रत्याशित रूप से नए अनुभाग में दिखाई देती है | नए सेक्शन के हेडर/फ़ूटर अभी भी पिछले सेक्शन से जुड़े हुए हैं | HeaderFooterCollection.LinkToPrevious(false) को कॉल करें (या अलग हेडर/फ़ूटर सामग्री जोड़ें) ताकि उन्हें अनलिंक किया जा सके |
| पहले पृष्ठ या सम पृष्ठ का हेडर/फ़ूटर अनदेखा किया जाता है | DifferentFirstPageHeaderFooter / OddAndEvenPagesHeaderFooter false है, या मिलते-जुलते HeaderFooterType वेरिएंट मौजूद नहीं है | PageSetup पर फ़्लैग सेट करें और सुनिश्चित करें कि संबंधित हेडर/फ़ूटर वेरिएंट मौजूद है |
| मल्टी-कलम लेआउट लागू नहीं होता | TextColumns.SetCount() को 1 की गिनती के साथ कॉल किया गया, या गलत सेक्शन के PageSetup पर | टार्गेट सेक्शन के PageSetup.TextColumns पर एक से अधिक कॉलम के साथ SetCount() को कॉल करें |
FAQ
नई पेज शुरू किए बिना नया सेक्शन कैसे शुरू करूँ?
SectionBreakContinuous ब्रेक को DocumentBuilder.InsertBreak(BreakType.SectionBreakContinuous) के साथ डालें।
मैं एक सेक्शन को उसके अपने मार्जिन और अभिविन्यास कैसे दूँ?
एक सेक्शन ब्रेक डालें, फिर नई सेक्शन के PageSetup – TopMargin, BottomMargin, LeftMargin, RightMargin, Orientation, और PaperSize पर गुण सेट करें।
मैं सेक्शन के पहले पृष्ठ पर अलग हेडर कैसे सेट करूँ?
उस सेक्शन पर PageSetup.DifferentFirstPageHeaderFooter = true सेट करें, और उसके HeadersFooters संग्रह में प्रकार HeaderFirst का HeaderFooter (और आवश्यकता होने पर FooterFirst) जोड़ें।
मैं सेक्शन के बॉडी टेक्स्ट को दो कॉलम में कैसे व्यवस्थित करूँ?
सेक्शन पर PageSetup.TextColumns.SetCount(2) कॉल करें, फिर आवश्यकतानुसार Spacing और EvenlySpaced / व्यक्तिगत TextColumn.Width मानों को समायोजित करें।
API Reference सारांश
| क्लास / एनम | विवरण |
|---|---|
Section | एक सेक्शन नोड; Body, HeadersFooters, PageSetup |
SectionCollection | दस्तावेज़ में प्रत्येक Section, Document.Sections के माध्यम से |
Body / Story | सेक्शन (Body) या हेडर/फ़ूटर (HeaderFooter) के लिए मुख्य सामग्री कंटेनर |
PageSetup | सेक्शन के लिए पृष्ठ आयाम, मार्जिन, अभिविन्यास, बॉर्डर और कॉलम |
HeaderFooter / HeaderFooterCollection | सेक्शन के लिए हेडर/फ़ूटर सामग्री और टाइप्ड एक्सेसर्स |
HeaderFooterType | पहचानता है कि HeaderFooter कौन सा हेडर/फ़ूटर वैरिएंट (primary, first, even) है |
TextColumn / TextColumnCollection | सेक्शन के लिए बहु-स्तंभ पाठ लेआउट |
PaperSize / Orientation / Margins | पृष्ठ आकार, अभिविन्यास, और पूर्वनिर्धारित मार्जिन मान |
PageBorderAppliesTo / PageBorderDistanceFrom | पेज बॉर्डर किस पृष्ठों पर प्रिंट होता है, और उसका संदर्भ किनारा |
SectionStart / BreakType | सेक्शन पर रिकॉर्ड किया गया सेक्शन-ब्रेक प्रकार, और ब्रेक प्रकार DocumentBuilder.InsertBreak() स्वीकार करता है |
LineNumberRestartMode | जब स्वचालित पंक्ति क्रमांकन एक अनुभाग के भीतर पुनः शुरू होता है |