.NET में सेक्शन्स के साथ कैसे काम करें
यह मार्गदर्शिका दिखाती है कि कैसे सेक्शन ब्रेक बनाएँ, पेज सेटअप कॉन्फ़िगर करें, और हेडर, फुटर, तथा मल्टी-कलम लेआउट को प्रबंधित करें Aspose.Words FOSS .NET के लिए, उपयोग करते हुए Section and PageSetup क्लासेज़। यह दस्तावेज़ में पहले से मौजूद सेक्शनों को पढ़ना, एक नया सेक्शन … के साथ शुरू करना कवरेज करता है DocumentBuilder, पेज के आयाम और मार्जिन कॉन्फ़िगर करना, हेडर और फुटर वेरिएंट जोड़ना, और बॉडी टेक्स्ट को कई कॉलम में लेआउट करना।
स्टेप-बाय-स्टेप गाइड
चरण 1: पैकेज स्थापित करें
Aspose.Words FOSS for .NET अभी तक एक NuGet पैकेज प्रकाशित नहीं करता – इसके बजाय लाइब्रेरी को स्रोत से बनाएं। https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git को क्लोन करें, फिर .NET SDK के साथ रिलीज़ कॉन्फ़िगरेशन में Aspose.Words.sln बनाएं और अपने प्रोजेक्ट से उत्पन्न Aspose.Words असेंबली को संदर्भित करें। लाइब्रेरी .NET Standard 2.0 को लक्षित करती है, इसलिए यह .NET Framework 4.6.2+ और .NET 6/8/10 पर चलती है।
चरण 2: आवश्यक क्लासेज़ आयात करें
एक using Aspose.Words; निर्देश जोड़ें – Section, PageSetup, HeaderFooter, और इस गाइड में उपयोग किए गए संबंधित एन्यूम सीधे Aspose.Words नेमस्पेस में Document और DocumentBuilder के साथ रहते हैं।
चरण 3: दस्तावेज़ में पहले से मौजूद अनुभागों को पढ़ें
Document.Sections एक SectionCollection लौटाता है जो दस्तावेज़ में प्रत्येक Section को रखता है, प्रत्येक एक CompositeNode है जो समग्र नोड ट्री का भी हिस्सा है। Document.FirstSection और Document.LastSection संग्रह को इटरेट किए बिना सीमा अनुभागों तक सीधी पहुँच प्रदान करते हैं। प्रत्येक Section में एक Body होता है — जिसे किसी अन्य Story की तरह ही पहुँचा जा सकता है — और, जब मौजूद हो, तो हेडर और फुटर सामग्री Section.HeadersFooters के माध्यम से प्राप्त की जाती है।
चरण 4: सेक्शन ब्रेक के साथ एक नया अनुभाग शुरू करें
Call DocumentBuilder.InsertBreak(BreakType) कर्सर पर एक नया सेक्शन शुरू करने के लिए। पास BreakType.SectionBreakNewPage जब नया सेक्शन हमेशा एक नई पेज से शुरू होना चाहिए, BreakType.SectionBreakContinuous जब केवल पेज-सेटअप परिवर्तन की आवश्यकता हो (उदाहरण के लिए, मल्टी-कलम टेक्स्ट में स्विच करना) बिना पेज ब्रेक को मजबूर किए, या BreakType.SectionBreakNewColumn, SectionBreakEvenPage, और SectionBreakOddPage Word द्वारा समर्थित अन्य सेक्शन-स्टार्ट व्यवहारों के लिए। एक सेक्शन ब्रेक उस सेक्शन की फ़ॉर्मेटिंग वहन करता है जो follows यह, इसलिए सेट PageSetup नई पर properties Section – पहले वाले को नहीं – एक बार ब्रेक डाल दिया गया। DocumentBuilder.MoveToSection(sectionIndex) कर्सर को किसी विशिष्ट सेक्शन के बॉडी की शुरुआत में ले जाता है, और PageSetup.SectionStart पढ़ता या सेट करता है SectionStart मौजूदा सेक्शन पर पहले से रिकॉर्ड किया गया ब्रेक प्रकार।
चरण 5: पृष्ठ आयाम और मार्जिन कॉन्फ़िगर करें
प्रत्येक Section.PageSetup एक PageSetup इंस्टेंस है। पृष्ठ आयाम और मार्जिन के लिए PageWidth, PageHeight, LeftMargin, RightMargin, TopMargin, BottomMargin और Gutter सेट करें, या सीधे PageSetup.Margins को एक Margins प्रीसेट असाइन करें। Orientation और PaperSize पृष्ठ अभिविन्यास और कागज़ के आकार को नियंत्रित करते हैं। पृष्ठ बॉर्डर Borders (एक BorderCollection), BorderAppliesTo (PageBorderAppliesTo), BorderDistanceFrom (PageBorderDistanceFrom), BorderAlwaysInFront, BorderSurroundsHeader और BorderSurroundsFooter के साथ कॉन्फ़िगर किए जाते हैं। PageSetup.ClearFormatting() को कॉल करके किसी सेक्शन की पृष्ठ सेटअप को डिफ़ॉल्ट पर रीसेट करें, फिर उसे शून्य से कॉन्फ़िगर करें।
चरण 6: हेडर और फुटर जोड़ें और लिंक करें
Section.HeadersFooters एक HeaderFooterCollection है जिसमें टाइप्ड एक्सेसर्स – HeaderPrimary, HeaderFirst, HeaderEven, FooterPrimary, FooterFirst, FooterEven – के साथ-साथ GetByHeaderFooterType() भी है जो HeaderFooterType और Add() द्वारा लुकअप करके नया जोड़ने के लिए उपयोग किया जाता है। प्रत्येक HeaderFooter एक Story है, जिसमें IsHeader और IsLinkedToPrevious फ्लैग होते हैं। संबंधित HeaderFirst/FooterFirst या HeaderEven/FooterEven वैरिएंट जोड़ने से पहले PageSetup.DifferentFirstPageHeaderFooter या PageSetup.OddAndEvenPagesHeaderFooter सक्षम करें — फ्लैग और वैरिएंट केवल साथ में ही प्रभावी होते हैं। HeaderFooterCollection.LinkToPrevious() को कॉल करके किसी सेक्शन के हेडर या फुटर को फिर से कनेक्ट करें ताकि वह पिछले सेक्शन की सामग्री को विरासत में ले, या उसे अनकनेक्ट करें ताकि नया सेक्शन स्वतंत्र सामग्री से शुरू हो।
चरण 7: बॉडी टेक्स्ट को कई कॉलम में व्यवस्थित करें
PageSetup.TextColumns सेक्शन के लिए एक TextColumnCollection लौटाता है। बॉडी टेक्स्ट को जिस संख्या में कॉलम में प्रवाहित करना है, उसके साथ SetCount() को कॉल करें, फिर EvenlySpaced, Spacing, LineBetween और Width को समायोजित करके कॉलम के लेआउट को नियंत्रित करें। एक बार संग्रह में एक से अधिक कॉलम हो जाएँ, व्यक्तिगत TextColumn इंस्टेंसेज़ अपने स्वयं के Width और SpaceAfter उजागर करती हैं।
चरण 8: सेक्शन सामग्री को साफ़ करें या बल्क-एडिट करें
Section.AppendContent() और PrependContent() किसी अन्य सेक्शन की बॉडी सामग्री को इस में कॉपी करते हैं; ClearContent() सेक्शन की बॉडी को बल्क में खाली कर देता है। ClearHeadersFooters() और DeleteHeaderFooterShapes() सेक्शन को हटाए बिना हेडर और फुटर सामग्री को साफ़ कर देते हैं।
सामान्य समस्याएँ और समाधान
नए सेक्शन की पेज सेटअप मेरे द्वारा सेट किए गए के साथ मेल नहीं खा रहा है PageSetup गलत पर सेट किया गया Section इंस्टेंस। एक सेक्शन ब्रेक उस सेक्शन के लिए फ़ॉर्मेटिंग ले जाता है जो इसके बाद आता है — सेट PageSetup उस सेक्शन पर जो बाद में आता है InsertBreak(), पहले वाले नहीं।
पिछले सेक्शन की हेडर या फुटर सामग्री अनपेक्षित रूप से नए सेक्शन में दिखाई देती है नए सेक्शन की हेडर या फुटर अभी भी पिछले सेक्शन से जुड़ी हुई है। कॉल HeaderFooterCollection.LinkToPrevious(false), या नए सेक्शन में अलग हेडर/फुटर सामग्री जोड़ें, ताकि इसे अनलिंक किया जा सके।
पहले पृष्ठ या सम पृष्ठ का हेडर/फ़ूटर नजरअंदाज़ किया जाता है DifferentFirstPageHeaderFooter or OddAndEvenPagesHeaderFooter is false, या मिलते हुए HeaderFooterType वेरिएंट मौजूद नहीं है में Section.HeadersFooters. फ़्लैग सेट करें PageSetup और संबंधित हेडर/फ़ूटर वेरिएंट को साथ में जोड़ें।
मल्टी-कॉलम लेआउट लागू नहीं होता है TextColumns.SetCount() एक की गिनती के साथ कॉल किया गया, या गलत सेक्शन के PageSetup. कॉल करें SetCount() लक्षित अनुभाग के एक से अधिक कॉलम के साथ PageSetup.TextColumns.
सेक्शन ब्रेक गलत दस्तावेज़ स्थिति पर डाला गया DocumentBuilder.InsertBreak(BreakType) बिल्डर के वर्तमान कर्सर पर सम्मिलित करता है। उपयोग करें DocumentBuilder.MoveToSection() या बिल्डर के अन्य कर्सर-स्थिति निर्धारण सदस्यों का उपयोग करके कॉल करने से पहले कर्सर को स्थित करें InsertBreak().
अक्सर पूछे जाने वाले प्रश्न
मैं नई पृष्ठ शुरू किए बिना नया सेक्शन कैसे शुरू करूँ?
DocumentBuilder.InsertBreak(BreakType.SectionBreakContinuous) के साथ एक SectionBreakContinuous ब्रेक डालें।
मैं एक सेक्शन को उसके अपने मार्जिन और अभिविन्यास कैसे दूँ?
एक सेक्शन ब्रेक डालें, फिर नए सेक्शन के PageSetup पर TopMargin, BottomMargin, LeftMargin, RightMargin, Orientation, और PaperSize सेट करें।
सेक्शन के पहले पेज पर अलग हेडर कैसे सेट करूँ?
उस सेक्शन पर PageSetup.DifferentFirstPageHeaderFooter = true सेट करें, और उसकी HeadersFooters संग्रह में प्रकार HeaderFirst का एक HeaderFooter (और यदि आवश्यक हो तो FooterFirst) जोड़ें।
सेक्शन के बॉडी टेक्स्ट को दो कॉलम में कैसे व्यवस्थित करूँ?
सेक्शन पर PageSetup.TextColumns.SetCount(2) कॉल करें, फिर आवश्यकतानुसार Spacing, EvenlySpaced, या व्यक्तिगत TextColumn.Width मानों को समायोजित करें।
मैं पहले और अंतिम सेक्शन को सीधे कैसे पहुँचूँ?
Document.Sections में इंडेक्सिंग करने के बजाय Document.FirstSection और Document.LastSection पढ़ें।