बिल्डिंग ब्लॉक्स
बिल्डिंग ब्लॉक्स
यह गाइड दिखाता है कि कैसे एक दस्तावेज़ के शब्दकोश दस्तावेज़ में संग्रहित पुन: प्रयोज्य सामग्री बिल्डिंग ब्लॉक्स को पढ़ें और संशोधित करें Aspose.Words FOSS for .NET के साथ। लाइब्रेरी AutoText प्रविष्टियों, कवर पेज, हेडर, फुटर, और इसी प्रकार के पूर्वनिर्धारित सामग्री को Document.GlossaryDocument और BuildingBlock/BuildingBlockCollection ऑब्जेक्ट मॉडल के माध्यम से उजागर करती है।
शब्दकोश दस्तावेज़
प्रत्येक Document में एक GlossaryDocument होता है — जिसे Document.GlossaryDocument के माध्यम से पहुँच सकते हैं — जो स्वयं एक DocumentBase उपवर्ग है जो बिल्डिंग ब्लॉक्स को रखता है। इसका BuildingBlocks प्रॉपर्टी एक BuildingBlockCollection लौटाता है, जिसमें FirstBuildingBlock/LastBuildingBlock सूची के अंत तक शीघ्र पहुँच प्रदान करते हैं। एक विशिष्ट बिल्डिंग ब्लॉक को GetBuildingBlock(gallery, category, name) के साथ खोजें, जो उसके BuildingBlockGallery, श्रेणी स्ट्रिंग, और नाम को साथ मिलाता है।
बिल्डिंग ब्लॉक संरचना
BuildingBlock एक CompositeNode है, इसलिए यह अपनी स्वयं की कंटेंट ट्री रखता है — Sections (एक SectionCollection), FirstSection, और LastSection — उसी तरह जैसे एक Document सेक्शन रखता है। इसकी मेटाडेटा प्रॉपर्टीज़ इसे पहचानती और वर्गीकृत करती हैं: Name, Guid, Description, Category, Gallery (एक BuildingBlockGallery — AutoText, CoverPage, Headers, Footers, Tables, Watermarks, और दर्जनों अधिक पूर्वनिर्धारित गैलरी), Type (एक BuildingBlockType), और Behavior (एक BuildingBlockBehavior Content, Paragraph, या Page का) जो नियंत्रित करता है कि इसे सम्मिलित करने पर इसकी सामग्री दस्तावेज़ में कैसे मर्ज होती है।
बिल्डिंग ब्लॉक संग्रह का प्रबंधन
BuildingBlockCollection पूर्ण संग्रह संपादन का समर्थन करता है: Add(node), Insert(index, node), Remove(node), RemoveAt(index), Clear(), Contains(node), और IndexOf(node), साथ ही पढ़ने के लिए ToArray() और GetEnumerator()। क्योंकि यह एक NodeCollection है, बिल्डिंग ब्लॉक्स को उसी नोड API का उपयोग करके बनाया, क्लोन किया और स्थानांतरित किया जा सकता है जैसे दस्तावेज़ वृक्ष के किसी अन्य भाग में।
प्लेसहोल्डर टेक्स्ट बिल्डिंग ब्लॉक्स
संरचित दस्तावेज़ टैग एक बिल्डिंग ब्लॉक को अपने प्लेसहोल्डर सामग्री के रूप में संदर्भित कर सकते हैं: StructuredDocumentTag.Placeholder और StructuredDocumentTagRangeStart.Placeholder दोनों खाली टैग होने पर दिखाए गए BuildingBlock को लौटाते हैं, साझा IStructuredDocumentTag.Placeholder प्रॉपर्टी के माध्यम से।
सलाह और सर्वोत्तम प्रथाएँ
GetBuildingBlock(gallery, category, name)के तीन तर्कों को सावधानीपूर्वक मिलाएँ — समान नाम विभिन्न गैलरियों या श्रेणियों में मौजूद हो सकता है।BuildingBlockGalleryका उपयोग करके आप किस प्रकार की पुन: उपयोग योग्य सामग्री खोज रहे हैं, इसे फ़िल्टर करें (AutoText,CoverPage,Tables,Watermarks, आदि) बजाय केवल नाम से प्रत्येक बिल्डिंग ब्लॉक को स्कैन करने के।BuildingBlockBehaviorनिर्धारित करता है कि सम्मिलित सामग्री आसपास के दस्तावेज़ के साथ कैसे मिलती है (Content,Paragraph, याPage) — यह जांचें इससे पहले कि आप मान लें कि बिल्डिंग ब्लॉक आपकी अपेक्षा के अनुसार सम्मिलित होगा।- चूँकि
BuildingBlockएकCompositeNodeहै, इसे उसके सामग्री को बनाते या संपादित करते समय किसी भी अन्य नोड सबट्री की तरह मानें —AppendChild,InsertAfter, और समान नोड मेथड्स सभी लागू होते हैं।
सामान्य समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
GetBuildingBlock() कुछ नहीं लौटाता | गैलरी, श्रेणी, या नाम मौजूदा building block से बिल्कुल मेल नहीं खाता | GlossaryDocument.BuildingBlocks को सूचीबद्ध करके सटीक Gallery/Category/Name संयोजन खोजें |
| डाली गई बिल्डिंग ब्लॉक सामग्री अनपेक्षित रूप से मर्ज हो जाती है | Behavior (Content/Paragraph/Page) को ध्यान में नहीं रखा गया है | डालने से पहले BuildingBlock.Behavior की जाँच करें ताकि समझ सकें कि यह कैसे मर्ज होगा |
| स्ट्रक्चर्ड दस्तावेज़ टैग प्लेसहोल्डर अपेक्षित सामग्री नहीं दिखा रहा है | Placeholder अनुमानित BuildingBlock से अलग एक BuildingBlock की ओर इशारा कर रहा है | यह पुष्टि करने के लिए कि वास्तव में कौन सा बिल्डिंग ब्लॉक संदर्भित है, StructuredDocumentTag.Placeholder पढ़ें |
FAQ
दस्तावेज़ में बिल्डिंग ब्लॉक्स कहाँ संग्रहीत होते हैं?
दस्तावेज़ के GlossaryDocument में, Document.GlossaryDocument के माध्यम से सुलभ, जिसका BuildingBlocks गुण एक BuildingBlockCollection है।
मैं एक विशिष्ट बिल्डिंग ब्लॉक, जैसे कि AutoText प्रविष्टि, कैसे खोजूँ?
मैचिंग BuildingBlockGallery, श्रेणी और नाम के साथ GlossaryDocument.GetBuildingBlock(gallery, category, name) को कॉल करें।
क्या मैं प्रोग्रामेटिक रूप से नए बिल्डिंग ब्लॉक्स जोड़ सकता हूँ?
हां — BuildingBlockCollection Add(node) और Insert(index, node) का समर्थन करता है क्योंकि यह एक NodeCollection है।
क्या BuildingBlockBehavior नियंत्रित करता है?
जब इसे सम्मिलित किया जाता है, तो बिल्डिंग ब्लॉक की सामग्री दस्तावेज़ में कैसे मिलती है — Content के रूप में, एक पूरा Paragraph, या एक पूरा Page।
एक बिल्डिंग ब्लॉक संरचित दस्तावेज़ टैग के प्लेसहोल्डर टेक्स्ट से कैसे संबंधित है?
StructuredDocumentTag.Placeholder (और StructuredDocumentTagRangeStart.Placeholder) वह BuildingBlock लौटाते हैं जो खाली होने पर SDT के प्लेसहोल्डर सामग्री को प्रदान करता है।
API Reference सारांश
| क्लास / मेथड | विवरण |
|---|---|
Document.GlossaryDocument | दस्तावेज़ का GlossaryDocument, जो सभी बिल्डिंग ब्लॉक्स को रखता है |
GlossaryDocument.BuildingBlocks | प्रत्येक बिल्डिंग ब्लॉक का BuildingBlockCollection |
GlossaryDocument.GetBuildingBlock() | गैलरी, श्रेणी और नाम के आधार पर बिल्डिंग ब्लॉक को खोजता है |
BuildingBlock | एक CompositeNode जिसमें Name, Gallery, Category, Behavior, Type, Sections |
BuildingBlockCollection | Add(), Insert(), Remove(), Clear(), Contains(), IndexOf() |
BuildingBlockGallery / BuildingBlockType / BuildingBlockBehavior | Enums जो बिल्डिंग ब्लॉक को वर्गीकृत करते हैं |
StructuredDocumentTag.Placeholder | यह BuildingBlock SDT का प्लेसहोल्डर कंटेंट के रूप में उपयोग किया गया है |