.NET में स्टाइल्स के साथ काम करना कैसे करें
यह मार्गदर्शिका दिखाती है कि पैराग्राफ, अक्षर, तालिका और सूची शैलियों को कैसे खोजें, लागू करें और बनाएं in Aspose.Words FOSS के लिए .NET, उपयोग करते हुए Style, StyleCollection, और TableStyle classes. यह दस्तावेज़ की शैली संग्रह को पढ़ने, विभिन्न भाषाओं में शैलियों को विश्वसनीय रूप से खोजने, पैराग्राफ और रन पर शैलियों को लागू करने, शैलियों को बनाने और कॉपी करने, और तालिका शैलियों पर क्षेत्र-वार शर्तीय स्वरूपण को कॉन्फ़िगर करने को कवर करता है।
कदम-दर-कदम मार्गदर्शिका
चरण 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; निर्देश जोड़ें — Style, StyleCollection, TableStyle, StyleType, StyleIdentifier, ConditionalStyle, ConditionalStyleCollection, और ConditionalStyleType सभी Aspose.Words नेमस्पेस में Document के साथ रहते हैं।
चरण 3: दस्तावेज़ की शैली संग्रह पढ़ें
Document.Styles एक StyleCollection लौटाता है – दस्तावेज़ से जुड़ी हर बिल्ट-इन और उपयोगकर्ता-परिभाषित Style। StyleCollection.Count बताता है कि इसमें कितनी शैलियाँ हैं, और DefaultFont / DefaultParagraphFormat दस्तावेज़-व्यापी डिफ़ॉल्ट फॉर्मेटिंग का वर्णन करते हैं जिसे नया कंटेंट किसी स्पष्ट शैली के लागू होने से पहले विरासत में लेता है।
चरण 4: शैली को विश्वसनीय रूप से देखें
एक शैली को उसके प्रदर्शन नाम से प्राप्त करें StyleCollection इंडेक्सर, styles[name] का उपयोग करके। बिल्ट-इन शैलियों के लिए, उसी इंडेक्सर को StyleIdentifier enum मान के साथ उपयोग करना पसंद करें – styles[sti] – नाम स्थानीयकृत होते हैं, लेकिन StyleIdentifier मान नहीं होते, इसलिए पहचानकर्ता द्वारा लुकअप दस्तावेज़ की भाषा की परवाह किए बिना समान रूप से काम करता है। यदि इंडेक्सर वह नहीं ढूंढ पाता जिसकी आप अपेक्षा कर रहे हैं, तो समान शैली के लिए Word द्वारा पहचाने गए वैकल्पिक नामों के लिए Style.Aliases जाँचें, और शैली को प्रोग्रामेटिक रूप से हटाने या पुनःनामित करने से पहले Style.BuiltIn जाँचें, क्योंकि बिल्ट-इन शैलियों को अक्सर दस्तावेज़ में अन्य स्थानों पर नाम से संदर्भित किया जाता है।
चरण 5: पैराग्राफ़ या रन पर शैली लागू करें
जो फ़ॉर्मेटिंग ऑब्जेक्ट्स शैली ले जाते हैं, वे दोनों Style प्रॉपर्टी (खुद Style ऑब्जेक्ट) और StyleName प्रॉपर्टी (नाम द्वारा शैली को हल करने या बनाने का शॉर्टकट) उजागर करते हैं। पैराग्राफ़ शैली लागू करने के लिए ParagraphFormat.Style या ParagraphFormat.StyleName सेट करें, और रन के फ़ॉर्मेटिंग पर कैरेक्टर शैली लागू करने के लिए Font.Style या Font.StyleName सेट करें। संग्रह में पहले से मौजूद न होने वाले नाम के साथ StyleName असाइन करने से वह शैली बन जाती है — पहले StyleCollection इंडेक्सर से पुष्टि करें कि शैली मौजूद है, या यदि वह इच्छित व्यवहार नहीं है तो सीधे Style ऑब्जेक्ट असाइन करें।
चरण 6: शैली पदानुक्रम बनाएं
BaseStyleName पढ़ें ताकि पता चल सके कि एक दी गई शैली अनसेट फ़ॉर्मेटिंग को किस शैली से विरासत में लेती है, LinkedStyleName एक जोड़ीदार पैराग्राफ़/कैरेक्टर शैली के लिए (जैसे Word बिल्ट-इन शैलियों में हेडिंग और उसकी लिंक्ड कैरेक्टर शैली), और NextParagraphStyleName उस शैली के लिए जिसे Word एक नई पैराग्राफ़ को असाइन करता है जो इस शैली का उपयोग करने वाले पैराग्राफ़ के बाद टाइप किया जाता है। संबंधित शैलियों के सेट को परिभाषित करते समय BaseStyleName सेट करें — जैसे हेडिंग शैलियों का एक परिवार जो सभी एक बेस शैली से फ़ॉन्ट विकल्प विरासत में लेना चाहिए — ताकि प्रत्येक शैली पर वही फ़ॉर्मेटिंग दोहराने की आवश्यकता न पड़े।
चरण 7: एक शैली बनाएं या कॉपी करें
Call StyleCollection.Add(type, name) को StyleType (Paragraph, Character, Table, या List) और एक नाम के साथ बुलाएँ ताकि एक नई, खाली शैली बनाई जा सके, फिर आवश्यकता अनुसार उसके Font और ParagraphFormat गुण सेट करें। मौजूदा शैली की प्रतिलिपि बनाने के लिए — जिसमें किसी अलग Document के StyleCollection से कोई भी शैली शामिल है — StyleCollection.AddCopy(style) को कॉल करें बजाय इसके कि आप प्रत्येक फ़ॉर्मेटिंग गुण को मैन्युअल पढ़ें और पुनः लागू करें। शैली को उसके संग्रह से हटाने के लिए Style.Remove() को कॉल करें।
चरण 8: तालिका शैलियों और शर्तीय फ़ॉर्मेटिंग को कॉन्फ़िगर करें
TableStyle Style को तालिका-लेआउट गुणों के साथ विस्तारित करता है — Alignment, CellSpacing, LeftIndent, Shading, VerticalAlignment, और चार पैडिंग गुण (LeftPadding, RightPadding, TopPadding, BottomPadding) — साथ ही RowStripe और ColumnStripe, जो नियंत्रित करते हैं कि बैंडिंग पैटर्न कितनी पंक्तियों या स्तंभों पर दोहराया जाता है। प्रति-क्षेत्र फ़ॉर्मेटिंग के लिए, TableStyle.ConditionalStyles को कॉन्फ़िगर करें — एक ConditionalStyleCollection जो प्रत्येक क्षेत्र के लिए एक ConditionalStyle रखता है: FirstRow, LastRow, FirstColumn, LastColumn, OddRowBanding, EvenRowBanding, OddColumnBanding, EvenColumnBanding, और चार कोर्नर सेल्स (TopLeftCell, TopRightCell, BottomLeftCell, BottomRightCell)। प्रत्येक ConditionalStyle अपना स्वयं का Font, ParagraphFormat, Shading, Borders, और सेल पैडिंग रखता है, जिसमें Type यह रिपोर्ट करता है कि वह कौन सा ConditionalStyleType क्षेत्र दर्शाता है; इन क्षेत्रों पर फ़ॉर्मेटिंग सेट करें न कि व्यक्तिगत तालिका पंक्तियों पर, ताकि बैंडेड, हेडर-रो, या कोर्नर-सेल फ़ॉर्मेटिंग तालिका संपादन के बाद भी बनी रहे।
चरण 9: फ़ॉर्मेटिंग रीसेट या हटाएँ
एक शर्तीय क्षेत्र को रीसेट करने के लिए ConditionalStyle.ClearFormatting() को कॉल करें, या सभी क्षेत्रों को एक साथ TableStyle पर रीसेट करने के लिए ConditionalStyleCollection.ClearFormatting() को कॉल करें। StyleCollection.ClearQuickStyleGallery() Word UI की क्विक-स्टाइल गैलरी से सभी शैलियों को हटाता है बिना स्वयं शैलियों को हटाए — दस्तावेज़ सामग्री को छुए बिना गैलरी को छोटा करने के लिए उपयोगी।
सामान्य समस्याएँ और समाधान
StyleCollection indexer नाम खोज के लिए null लौटाता है इस दस्तावेज़ में शैली नाम मौजूद नहीं है, या कोई अंतर्निहित शैली अभी तक उपयोग नहीं हुई है, इसलिए Word ने इसे साकार नहीं किया है। जाँचें Style.Aliases वैकल्पिक नामों के लिए, या उपयोग करें StyleCollection एक indexer के साथ StyleIdentifier बिल्ट-इन शैलियों के लिए इसके बजाय।
सेटिंग StyleName अप्रत्याशित रूप से एक नई शैली बनाती है StyleName नामित शैली बनाता है यदि यह संग्रह में पहले से मौजूद नहीं है। इसका उपयोग करें StyleCollection पहले indexer का उपयोग करके यह पुष्टि करें कि शैली मौजूद है, या असाइन करें Style ऑब्जेक्ट को सीधे … के माध्यम से Style property के बजाय StyleName.
टेबल बैंडिंग एक TableStyle लागू करने के बाद दिखाई नहीं देती शर्तीय स्वरूपण क्षेत्रों – OddRowBanding, EvenRowBanding, और समान – कभी भी कॉन्फ़िगर नहीं किए गए थे TableStyle.ConditionalStyles. संबंधित पर स्वरूपण सेट करें ConditionalStyle प्रविष्टियों में ConditionalStyleCollection.
एक शैली परिवर्तन उन सामग्री को प्रभावित नहीं करता जो पहले से ही उस शैली का उपयोग कर रही है प्रत्यक्ष (हाथ से) स्वरूपण शैली के ऊपर लागू किया गया शैली की अपनी सेटिंग्स पर प्राथमिकता लेता है। प्रभावित रनों या पैराग्राफ़ पर प्रत्यक्ष स्वरूपण साफ़ करें, या सेट Style.AutomaticallyUpdate ताकि शैली उस हाथ से किए गए स्वरूपण से स्वयं को पुनर्परिभाषित कर ले।
एक अंतर्निहित शैली खोज किसी अन्य भाषा में लिखे दस्तावेज़ में विफल हो जाती है यह StyleCollection इंडेक्सर डिस्प्ले नाम पर मेल खाता है, जो स्थानीयकृत है, जब किसी नाम के साथ बुलाया जाता है। समान इंडेक्सर का उपयोग संबंधित StyleIdentifier enum मान के बजाय, क्योंकि वह पहचानकर्ता भाषा-स्वतंत्र है।
अक्सर पूछे जाने वाले प्रश्न
मैं दस्तावेज़ में सभी स्टाइल्स का संग्रह कैसे प्राप्त करूँ?
Document.Styles पढ़ें, जो एक StyleCollection लौटाता है जिसमें उस दस्तावेज़ में सभी बिल्ट-इन और उपयोगकर्ता-परिभाषित Style शामिल होते हैं।
Style और StyleIdentifier के बीच क्या अंतर है?
Style वास्तविक शैली ऑब्जेक्ट है जिसमें उसका फॉर्मेटिंग है; StyleIdentifier एक लोकेल-स्वतंत्र enum मान है जिसका उपयोग दस्तावेज़ की भाषा की परवाह किए बिना किसी विशिष्ट बिल्ट-इन शैली को खोजने के लिए StyleCollection इंडेक्सर के माध्यम से किया जाता है।
टेबल शैलियों में पैराग्राफ या कैरेक्टर शैलियों से क्या अंतर है?
TableStyle Style की एक उपवर्ग है जो टेबल-लेआउट गुण (Alignment, CellSpacing, padding) और ConditionalStyles संग्रह जोड़ता है, जो बैंडेड पंक्तियों, हेडर पंक्तियों और कोर्नर सेल्स जैसे क्षेत्र-विशिष्ट फॉर्मेटिंग के लिए है — ऐसे फॉर्मेटिंग अवधारणाएँ जो पैराग्राफ या कैरेक्टर शैलियों पर लागू नहीं होतीं।
क्या मैं मौजूदा शैली को संशोधित करने के बजाय एक नई शैली बना सकता हूँ?
हाँ — इच्छित StyleType और एक नया नाम देकर StyleCollection.Add(type, name) को कॉल करें ताकि एक खाली शैली बनाई जा सके, फिर उसकी फॉर्मेटिंग प्रॉपर्टीज़ सेट करें (Font, ParagraphFormat, आदि पैराग्राफ या कैरेक्टर शैलियों के लिए)।
मैं एक शैली को कैसे डुप्लिकेट कर सकता हूँ, जिसमें किसी अन्य दस्तावेज़ से भी हो?
StyleCollection.AddCopy(style) को कॉल करें, एक Style ऑब्जेक्ट पास करते हुए — जो किसी अलग Document के StyleCollection से आ सकता है — ताकि उसकी एक प्रति लक्ष्य संग्रह में जोड़ी जा सके।