FieldBuilder के साथ फ़ील्ड बनाना
FieldBuilder के साथ फ़ील्ड बनाना
यह गाइड दिखाता है कि Aspose.Words FOSS में .NET के लिए शून्य से एक Word फ़ील्ड कैसे बनाएं, using FieldBuilder and FieldArgumentBuilder, दस्तावेज़ में पहले से मौजूद फ़ील्ड के साथ काम करने के बजाय। मौजूदा फ़ील्ड को पढ़ने, अपडेट करने या हटाने के लिए, देखें the फ़ील्ड के साथ काम करना गाइड.
FieldBuilder के साथ फ़ील्ड बनाना
FieldBuilder फ़ील्ड को फ़ील्ड कोड टोकनों — तर्क और स्विच — से बनाता है। new FieldBuilder(fieldType) के साथ एक बनाएँ, जिसमें आप बनाना चाहते हैं फ़ील्ड का FieldType पास करें। तर्क जोड़ने के लिए ओवरलोडेड AddArgument(argument) मेथड का उपयोग करें, जो एक string, int, double, एक नेस्टेड FieldBuilder, या एक FieldArgumentBuilder स्वीकार करता है। स्विच जोड़ने के लिए ओवरलोडेड AddSwitch(switchName), AddSwitch(switchName, switchArgument) (string), या AddSwitch(switchName, switchArgument) (int/double) मेथड्स का उपयोग करें।
निर्मित फ़ील्ड को सम्मिलित करना
जब एक FieldBuilder के पास उसके तर्क और स्विच हों, तो उसे दस्तावेज़ में सम्मिलित करने के लिए BuildAndInsert(refNode) को कॉल करें — एक ओवरलोड एक Inline नोड स्वीकार करता है और फ़ील्ड को उसके पहले सम्मिलित करता है, और दूसरा एक Paragraph स्वीकार करता है और फ़ील्ड को उस पैराग्राफ के अंत में सम्मिलित करता है।
FieldArgumentBuilder के साथ जटिल तर्क बनाना
FieldArgumentBuilder एक जटिल फ़ील्ड आर्ग्युमेंट बनाता है जो फ़ील्ड्स, नोड्स, और साधारण टेक्स्ट से बना होता है, उन मामलों में जहाँ एकल आर्ग्युमेंट को साधारण स्ट्रिंग से अधिक की आवश्यकता होती है। new FieldArgumentBuilder() से एक बनाएँ, फिर साधारण टेक्स्ट जोड़ने के लिए AddText(text) को कॉल करें, AddNode(node) से एक Inline नोड जोड़ें, या AddField(fieldBuilder) से एक अन्य फ़ील्ड (जो अपने स्वयं के FieldBuilder से बना है) को आर्ग्युमेंट के अंदर नेस्ट करें। पूर्ण हुए FieldArgumentBuilder को FieldBuilder.AddArgument(argument) में पास करें ताकि इसे बाहरी फ़ील्ड के आर्ग्युमेंट्स में से एक के रूप में उपयोग किया जा सके।
टिप्स और सर्वोत्तम प्रथाएँ
- जब आप किसी फ़ील्ड प्रकार का निर्माण कर रहे हों जो समर्पित फ़ील्ड क्लासों (जैसे
FieldDateयाFieldSymbol) में से किसी एक द्वारा समर्थित नहीं है, या जब आप डेटा से प्रोग्रामेटिक रूप से फ़ील्ड कोड उत्पन्न कर रहे हों बजाय हाथ से लिखे जाने के, तबFieldBuilderका उपयोग करें। - सरल मामले में
FieldBuilder.AddArgument(FieldBuilder)का उपयोग करके एक चाइल्ड फ़ील्ड को बाहरी फ़ील्ड के आर्ग्युमेंट के अंदर नेस्ट करें, या जब आर्ग्युमेंट एकल फ़ील्ड से अधिक हो तो टेक्स्ट, नोड्स और नेस्टेड फ़ील्ड्स के मिश्रित आर्ग्युमेंट कोFieldArgumentBuilderसे बनाएं। - उस
BuildAndInsert(refNode)ओवरलोड को चुनें जो आपके फ़ील्ड को जहाँ रखना चाहते हैं, उसके अनुरूप हो — किसी विशिष्टInlineनोड से पहले, या एकParagraphके अंत में। BuildAndInsertके बाद, परिणाम को पेड़ में किसी अन्य फ़ील्ड की तरह ही संभालें — उदाहरण के लिए, यदि फ़ील्ड प्रकार को स्पष्ट पुनर्गणना की आवश्यकता है तो उस परUpdate()को कॉल करें।
सामान्य समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
BuildAndInsert गलत स्थान को लक्ष्य करता है | इच्छित सम्मिलन बिंदु के लिए गलत ओवरलोड का उपयोग किया गया था | इसे सम्मिलित करने के लिए एक Inline नोड पास करें, या अंत में सम्मिलित करने के लिए एक Paragraph पास करें |
| फ़ील्ड आर्ग्यूमेंट साधारण टेक्स्ट और नोड को एक साथ स्वीकार नहीं करेगा | AddArgument को एक एकल string/int/double के साथ बुलाया गया था, न कि एक संयोजित आर्ग्यूमेंट के साथ | मिश्रित आर्ग्यूमेंट को FieldArgumentBuilder (AddText, AddNode, AddField) से बनाएं और उसे AddArgument को पास करें |
| निर्मित फ़ील्ड कोड में स्विच वैल्यू पहचानी नहीं गई है | AddSwitch(switchName) का उपयोग किया गया था जबकि स्विच को वास्तव में एक आर्ग्यूमेंट की आवश्यकता होती है | स्विच के स्ट्रिंग, इंट, या डबल वैल्यू के साथ AddSwitch(switchName, switchArgument) ओवरलोड का उपयोग करें |
FAQ
मुझे कब FieldBuilder का उपयोग करना चाहिए बजाय पहले से तैयार फ़ील्ड कोड डालने के?
जब आपको प्रोग्रामेटिक रूप से फ़ील्ड के तर्कों और स्विचों पर स्पष्ट नियंत्रण चाहिए, और आप पहले से तैयार फ़ील्ड कोड स्ट्रिंग डालने के बजाय उन्हें बनाते हैं, तब FieldBuilder का उपयोग करें।
मैं फ़ील्ड में एक से अधिक तर्क कैसे जोड़ सकता हूँ?
प्रत्येक तर्क के लिए AddArgument को एक बार कॉल करें — यह string, int, double, एक नेस्टेड FieldBuilder, और FieldArgumentBuilder के लिए ओवरलोडेड है।
क्या मैं ऐसा फ़ील्ड बना सकता हूँ जिसका तर्क टेक्स्ट और किसी अन्य फ़ील्ड के मिश्रण को शामिल करता हो?
हाँ — FieldArgumentBuilder का उपयोग करें, आवश्यकतानुसार AddText, AddNode, और AddField को कॉल करें, फिर इसे FieldBuilder.AddArgument को पास करें।
मैं निर्मित फ़ील्ड को दस्तावेज़ में वास्तव में कैसे रखूँ?
BuildAndInsert(refNode) को कॉल करें, और या तो एक Inline नोड पास करें (जो उसके पहले डालता है) या एक Paragraph (जो उसके अंत में डालता है)।
API Reference सारांश
| क्लास/मेथड | विवरण |
|---|---|
FieldBuilder | फ़ील्ड को फ़ील्ड कोड टोकन (आर्ग्यूमेंट्स और स्विचेज) से बनाता है |
FieldBuilder(fieldType) | निर्माता जो FieldType को लेकर बनाता है |
FieldBuilder.AddArgument(argument) | एक तर्क जोड़ता है (string, int, double, FieldBuilder, या FieldArgumentBuilder) |
FieldBuilder.AddSwitch(switchName) / AddSwitch(switchName, switchArgument) | एक फ़ील्ड स्विच जोड़ता है, मूल्य के साथ या बिना मूल्य के |
FieldBuilder.BuildAndInsert(refNode) | निर्मित फ़ील्ड को एक Inline नोड से पहले या एक Paragraph के अंत में सम्मिलित करता है |
FieldArgumentBuilder | पाठ, नोड्स और नेस्टेड फ़ील्ड्स से एक जटिल फ़ील्ड तर्क बनाता है |
FieldArgumentBuilder.AddText(text) | आर्ग्युमेंट में सादा पाठ जोड़ता है |
FieldArgumentBuilder.AddNode(node) | आर्ग्युमेंट में एक Inline नोड जोड़ता है |
FieldArgumentBuilder.AddField(fieldBuilder) | आर्ग्युमेंट में FieldBuilder द्वारा निर्मित फ़ील्ड को नेस्ट करता है |