आकार और वॉटरमार्क बनाना
आकृतियों का ड्रॉइंग और वॉटरमार्क
Word दस्तावेज़ AutoShapes, चित्र, टेक्स्ट बॉक्स, और OLE ऑब्जेक्ट्स को एक अलग ड्रॉइंग लेयर में रखते हैं, जो पैराग्राफ/रन टेक्स्ट प्रवाह से अलग होती है। Aspose.Words FOSS for .NET इस लेयर को Shape क्लास (वास्तविक ड्रॉइंग ऑब्जेक्ट्स) और उसकी एब्स्ट्रैक्ट बेस ShapeBase के साथ मॉडल करता है, दोनों Aspose.Words.Drawing नेमस्पेस का हिस्सा हैं। यह गाइड शैप मॉडल, चित्रों और AutoShapes को सम्मिलित करना, पोजिशनिंग और रैपिंग, फ़िल्स और इफ़ेक्ट्स, ग्रुपिंग, और वॉटरमार्क को कवर करता है।
Shape और ShapeBase मॉडल
Shape — सील्ड, और वह प्रकार जिसे आप सीधे उपयोग करते हैं — ड्रॉइंग लेयर में एक AutoShape, टेक्स्ट बॉक्स, फ्रीफ़ॉर्म, OLE ऑब्जेक्ट, ActiveX कंट्रोल, या चित्र का प्रतिनिधित्व करता है। यह एब्स्ट्रैक्ट ShapeBase से व्युत्पन्न है, जो प्रत्येक ड्रॉइंग ऑब्जेक्ट द्वारा साझा की गई प्रॉपर्टीज़ प्रदान करता है: पोज़िशन (Left, Top, Width, Height, Rotation), ShapeType एन्युम मान, और फ़ॉर्मेटिंग सब-ऑब्जेक्ट्स जैसे Fill, Stroke, ShadowFormat, Glow, और Reflection। GroupShape (जो एक ShapeBase भी है) आकारों के एक समूह को एक इकाई के रूप में दर्शाता है। एक स्टैंडअलोन आकार सीधे new Shape(doc, shapeType) से बनाएँ, जहाँ shapeType एक ShapeType मान है जैसे Rectangle, Ellipse, Star, या TextBox, फिर इसे DocumentBuilder.InsertNode(node) के साथ ट्री में डालें।
चित्रों और AutoShapes को DocumentBuilder के साथ सम्मिलित करना
विशेष रूप से चित्रों के लिए, DocumentBuilder.InsertImage अधिक प्रत्यक्ष मार्ग है: ओवरलोड्स एक Image, फ़ाइल पाथ, एक Stream, या एक कच्चा बाइट ऐरे स्वीकार करते हैं, तथा आगे के ओवरलोड्स स्पष्ट width/height या पूर्ण पोज़िशनिंग (horzPos, left, vertPos, top, width, height, wrapType) सेट करते हैं। परिणामी Shape अपने चित्र डेटा को ImageData प्रॉपर्टी के माध्यम से उजागर करता है — चित्र को बदलने के लिए ImageData.SetImage(...), साथ ही मूलभूत समायोजन के लिए CropTop/CropBottom/CropLeft/CropRight, Brightness, Contrast, और GrayScale। GroupShape इंस्टेंसेज़ DocumentBuilder.InsertGroupShape(shapes) के साथ बनाई जाती हैं।
पोज़िशनिंग और टेक्स्ट रैपिंग
एक आकार की पृष्ठ के सापेक्ष स्थिति RelativeHorizontalPosition और RelativeVerticalPosition द्वारा नियंत्रित होती है (प्रत्येक Page, Margin, Column या समान एंकर के सापेक्ष), साथ ही Left/Top ऑफसेट गुणों के साथ। HorizontalAlignment और VerticalAlignment सरल सापेक्ष संरेखण को संभालते हैं। आस-पास का पाठ आकार के चारों ओर कैसे बहता है, यह WrapType से निर्धारित होता है और पक्ष-विशिष्ट लपेटन के लिए WrapSide उपयोग किया जाता है। IsInline रिपोर्ट करता है कि आकार पाठ के साथ (इनलाइन) प्रवाहित होता है या स्वतंत्र रूप से तैरता है।
फ़िल, स्ट्रोक, और इफ़ेक्ट्स
Shape.Fill (एक Fill वस्तु) नियंत्रित करता है कि आकार का अंदरूनी भाग कैसे रंगा जाता है: Fill.Solid(color) सपाट रंग के लिए, Fill.OneColorGradient(...) / Fill.TwoColorGradient(...) ग्रेडिएंट के लिए, Fill.Patterned(patternType) पैटर्न के लिए, और Fill.SetImage(...) चित्र फ़िल के लिए; FillType रिपोर्ट करता है कि इनमें से कौन सा सक्रिय है। रूपरेखा Stroke गुण के माध्यम से नियंत्रित होती है, और दृश्य इफ़ेक्ट्स अलग फ़ॉर्मेटिंग वस्तुओं के रूप में उपलब्ध हैं — ShadowFormat, Glow (GlowFormat), Reflection (ReflectionFormat), और SoftEdge (SoftEdgeFormat) — प्रत्येक के पास प्रभाव को साफ़ करने के लिए अपना Remove() विधि है।
आकारों और टेक्स्ट बॉक्सों का समूह बनाना
एकाधिक आकारों को GroupShape में जोड़ा जा सकता है, जो स्वयं एकल ShapeBase के रूप में व्यवहार करता है और अपनी स्वयं की Fill, ShadowFormat, Glow, और Reflection रखता है। टेक्स्ट वाले आकार के लिए, Shape.TextBox (एक TextBox वस्तु) टेक्स्ट-विशिष्ट लेआउट को उजागर करती है: पैडिंग के लिए InternalMarginLeft/Right/Top/Bottom, आकार को स्वतः आकार देने के लिए FitShapeToText, टेक्स्ट दिशा के लिए LayoutFlow, और आकार के भीतर ऊर्ध्वाधर टेक्स्ट संरेखण के लिए VerticalAnchor।
Watermarks
Document.Watermark (एक Watermark वस्तु) दस्तावेज़-व्यापी वॉटरमार्क को प्रबंधित करती है जो किसी भी एकल आकार से स्वतंत्र होता है। टेक्स्ट वॉटरमार्क के लिए Watermark.SetText(text) या SetText(text, options) को कॉल करें, या चित्र वॉटरमार्क के लिए SetImage(...), और इसे साफ़ करने के लिए Watermark.Remove() का उपयोग करें। Watermark.Type वर्तमान WatermarkType (Text, Image, या None) रिपोर्ट करता है। TextWatermarkOptions FontFamily, FontSize, Color, और Layout (WatermarkLayout.Horizontal या Diagonal) को नियंत्रित करता है; ImageWatermarkOptions Scale और IsWashout को नियंत्रित करता है।
टिप्स और सर्वोत्तम प्रथाएँ
- जब कोड लिख रहे हों जो एकल
ShapeऔरGroupShapeदोनों उदाहरणों पर काम करे, तोShapeBaseका उपयोग करें; जब आपको चित्र- या AutoShape-विशिष्ट सदस्य जैसेImageDataयाChartकी आवश्यकता हो, तो सीधेShapeका उपयोग करें। - जब किसी आकार को फ़्लोट कर रहे हों, तो
RelativeHorizontalPosition/RelativeVerticalPositionकोWrapTypeके साथ सेट करें — एक इनलाइन आकार (जोInsertImageके लिए डिफ़ॉल्ट है) तब तक स्थितिक गुणों को अनदेखा करता है जब तक आप इसे फ़्लोट नहीं बनाते। - पूरे दस्तावेज़ में एकल वॉटरमार्क के लिए
Document.Watermarkको प्राथमिकता दें, बजाय इसके कि आप मैन्युअलीShapeको टेक्स्ट के पीछे डालें और स्थित करें। - व्यक्तिगत गुणों को शून्य सेट करने के बजाय, उसके ऑब्जेक्ट की
Remove()मेथड (ShadowFormat.Remove(),ReflectionFormat.Remove()) का उपयोग करके प्रभाव को साफ़ करें। ImageData,Chartया समूह-विशिष्ट सदस्यों तक पहुँचने से पहलेShape.HasImage,Shape.HasChart, याShape.IsGroupकी जाँच करें, क्योंकि एकShapeकई ड्राइंग ऑब्जेक्ट प्रकारों में से किसी एक को दर्शा सकता है।
सामान्य समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
एक आकार पर Left/Top सेट करने पर कोई दृश्यमान प्रभाव नहीं पड़ता | आकार अभी भी इनलाइन है (IsInline == true) | WrapType को फ्लोटिंग मान पर सेट करें और RelativeHorizontalPosition/RelativeVerticalPosition सेट करें ताकि स्थिति गुण प्रभावी हों |
Shape.ImageData त्रुटि देता है या खाली है | आकार एक चित्र आकार नहीं है | पढ़ने से पहले Shape.HasImage की जाँच करें ImageData |
| Watermark टेक्स्ट अनुरोधित फ़ॉन्ट से मेल नहीं खाता है | कोई TextWatermarkOptions प्रदान नहीं किया गया | एक TextWatermarkOptions इंस्टेंस पास करें जिसमें FontFamily को Watermark.SetText(text, options) पर सेट किया गया हो |
| एक समूह के चाइल्ड शैप्स एक साथ नहीं चलते | चाइल्ड्स को सीधे पुनःस्थित किया गया, समूह के माध्यम से नहीं | स्वयं GroupShape को ले जाएँ या आकार बदलें ताकि उसका कोऑर्डिनेट ट्रांसफ़ॉर्म सभी चाइल्ड्स पर लागू हो |
FAQ
Shape और ShapeBase में क्या अंतर है?
ShapeBase वह एब्स्ट्रैक्ट बेस क्लास है जो Shape और GroupShape द्वारा साझा की जाती है। ऐसे कोड में ShapeBase का उपयोग करें जो दोनों प्रकार को समान रूप से संभालना चाहिए; जब आपको किसी एक ड्रॉइंग ऑब्जेक्ट के विशिष्ट सदस्य चाहिए हों, जैसे ImageData या Chart, तो Shape का उपयोग करें।
मैं दस्तावेज़ में चित्र कैसे जोड़ूँ?
उपलब्ध DocumentBuilder.InsertImage ओवरलोड में से एक का उपयोग करें — एक Image, फ़ाइल पाथ, एक Stream, या बाइट एरे पास करें, वैकल्पिक रूप से width/height या पूर्ण पोजिशनिंग आर्ग्यूमेंट्स के साथ।
मैं शेप को टेक्स्ट के साथ इनलाइन रहने के बजाय फ्लोट कैसे बनाऊँ?
उसके WrapType को एक नॉन-इनलाइन मान पर सेट करें और RelativeHorizontalPosition / RelativeVerticalPosition को इस प्रकार सेट करें कि शेप के Left/Top ऑफ़सेट पेज, मार्जिन, या कॉलम के सापेक्ष व्याख्यायित हों।
क्या मैं टेक्स्ट और इमेज दोनों वॉटरमार्क जोड़ सकता हूँ?
Document.Watermark.Type वर्तमान वॉटरमार्क प्रकार को दर्शाता है; SetText या SetImage के साथ नया वॉटरमार्क सेट करने से पहले वाला प्रतिस्थापित हो जाता है, इसलिए किसी दस्तावेज़ में एक समय में अधिकतम एक सक्रिय वॉटरमार्क हो सकता है।
मैं शेप से शैडो या रिफ्लेक्शन कैसे हटाऊँ?
संबंधित फ़ॉर्मेटिंग ऑब्जेक्ट पर Remove() को कॉल करें — Shape.ShadowFormat.Remove() या Shape.Reflection.Remove()।
API Reference सारांश
| क्लास/मेथड | विवरण |
|---|---|
Shape | एकल ड्राइंग-लेयर वस्तु — AutoShape, चित्र, टेक्स्ट बॉक्स, या OLE वस्तु। |
ShapeBase | एब्स्ट्रैक्ट बेस क्लास जो Shape और GroupShape द्वारा साझा किया गया है। |
GroupShape | आकारों का एक समूह जिसे एक ड्राइंग ऑब्जेक्ट के रूप में माना जाता है। |
DocumentBuilder.InsertImage | कर्सर पर एक पिक्चर शेप डालता है, वैकल्पिक आकार और पोजिशनिंग के साथ। |
ImageData | एक Shape पर चित्र डेटा और इमेज समायोजन (क्रॉप, ब्राइटनेस, कंट्रास्ट)। |
Fill | इंटीरियर फ़िल फ़ॉर्मेटिंग — सॉलिड, ग्रेडिएंट, पैटर्न, या पिक्चर। |
RelativeHorizontalPosition / RelativeVerticalPosition | फ़्लोटिंग आकार की स्थिति किसके सापेक्ष मापी जाती है। |
WrapType / WrapSide | आसपास का टेक्स्ट आकार के चारों ओर कैसे लपेटता है। |
TextBox | टेक्स्ट युक्त आकार के लिए टेक्स्ट लेआउट सेटिंग्स। |
Document.Watermark | दस्तावेज़ के टेक्स्ट या इमेज वाटरमार्क का प्रबंधन करता है। |
TextWatermarkOptions / ImageWatermarkOptions | टेक्स्ट या इमेज वाटरमार्क की उपस्थिति को कॉन्फ़िगर करें। |