.NET में दस्तावेज़ प्रॉपर्टीज़ के साथ कैसे काम करें

.NET में दस्तावेज़ प्रॉपर्टीज़ के साथ कैसे काम करें

.NET में दस्तावेज़ गुणों के साथ कैसे काम करें

प्रत्येक Word दस्तावेज़ दो श्रेणियों का मेटाडाटा रखता है — मानक फ़ील्ड जो Word प्रत्येक फ़ाइल के लिए ट्रैक करता है, और कोई भी एप्लिकेशन-परिभाषित मान जो किसी प्रोग्राम ने जोड़े हों। यह गाइड दिखाता है कि कैसे Aspose.Words FOSS for .NET के साथ दोनों को पढ़ा और सेट किया जाए, Document.BuiltInDocumentProperties और Document.CustomDocumentProperties का उपयोग करके, जो अंततः एक ही DocumentProperty प्रतिनिधित्व पर निर्मित हैं।


कदम-दर-कदम मार्गदर्शिका

चरण 1: अंतर्निहित दस्तावेज़ गुणों को पढ़ें और सेट करें

Document.BuiltInDocumentProperties एक BuiltInDocumentProperties संग्रह लौटाता है। क्योंकि यह गुणों का एक स्थिर, ज्ञात सेट है, मानों को नाम द्वारा खोजने के बजाय सामान्य सदस्यों की तरह पढ़ा और लिखा जाता है — उदाहरण के लिए वर्णनात्मक फ़ील्ड के लिए BuiltInDocumentProperties.Author, .Title, .Subject, .Manager, .Company, .Category, .Keywords, और .Comments, या टाइमस्टैम्प के लिए .CreatedTime, .LastSavedTime, .LastPrinted, और .LastSavedBy। .Characters, .CharactersWithSpaces, .Lines, और .Bytes जैसी आँकड़े भी इस तरह उपलब्ध होते हैं, साथ ही .Template और .HyperlinkBase भी।


चरण 2: एक कस्टम दस्तावेज़ गुण जोड़ें

Document.CustomDocumentProperties एक CustomDocumentProperties संग्रह लौटाता है जो एप्लिकेशन-परिभाषित मेटाडेटा के लिए है और Word के अंतर्निहित सेट का हिस्सा नहीं है। एक नाम और टाइप्ड वैल्यू — स्ट्रिंग, नंबर, बूलियन, या डेट — के साथ Add(name, value) ओवरलोड में से किसी एक को कॉल करें (यह वैल्यू के प्रकार से मेल खाने वाले ओवरलोड पर निर्भर करता है) ताकि एक नई प्रॉपर्टी बनाई जा सके।


Step 3: कस्टम प्रॉपर्टी को दस्तावेज़ सामग्री से लिंक करें

स्थिर मान के बजाय, एक कस्टम प्रॉपर्टी बुकमार्केड रेंज ऑफ़ कंटेंट को ट्रैक कर सकती है ताकि उसका मान उस सामग्री के साथ सिंक में रहे। CustomDocumentProperties.AddLinkToContent(name, linkSource) को कॉल करें, बुकमार्क नाम को linkSource के रूप में पास करते हुए, बजाय इसके कि लिंक्ड सामग्री बदलने पर मैन्युअल रूप से स्थिर प्रॉपर्टी को पुनः-सिंक किया जाए।


Step 4: प्रॉपर्टीज़ को खोजें, जांचें, और हटाएँ

दोनों BuiltInDocumentProperties और CustomDocumentProperties एब्स्ट्रैक्ट DocumentPropertyCollection से व्युत्पन्न हैं, इसलिए उन्हें समान तरीके से जांचा जाता है: नाम द्वारा इंडेक्सिंग (उदाहरण के लिए properties[name]) एक प्रॉपर्टी प्राप्त करती है, Contains(name) यह जांचता है कि वह मौजूद है या नहीं, IndexOf(name) उसकी स्थिति लौटाता है, और Count यह रिपोर्ट करता है कि संग्रह में कितनी प्रॉपर्टीज़ हैं। जब कोई कस्टम प्रॉपर्टी मौजूद नहीं हो सकती है, तो नाम द्वारा इंडेक्सिंग से पहले Contains(name) को कॉल करें, ताकि मिसिंग प्रॉपर्टी को एक्सेप्शन पाथ के रूप में हैंडल करने से बचा जा सके। प्रॉपर्टी को Remove(name) या RemoveAt(index) से हटाएँ, या संग्रह में सभी प्रॉपर्टीज़ को Clear() से साफ़ करें।


Step 5: कस्टम प्रॉपर्टी का वैल्यू बिना उसके टाइप को पहले से जाने पढ़ें

एक DocumentProperty में एक Name, एक अनटाइप्ड Value, और एक Type होता है — एक PropertyType enum वैल्यू: Boolean, DateTime, Double, Number, String, StringArray, ObjectArray, ByteArray, या Other. चूँकि Value अनटाइप्ड है, सीधे कास्ट करने के बजाय मेल खाने वाले टाइप्ड एक्सेसर का उपयोग करें: ToInt(), ToDouble(), ToDateTime(), ToBool(), ToByteArray(), या ToString(). यह पता लगाने के लिए कि कोई प्रॉपर्टी स्थिर मान रखने के बजाय दस्तावेज़ सामग्री से लिंक है (चरण 3 देखें), IsLinkToContent और LinkSource को चेक करें।


Step 6: दस्तावेज़ की सुरक्षा स्थिति जाँचें

BuiltInDocumentProperties.Security दस्तावेज़ के संग्रहीत सुरक्षा मेटाडेटा का वर्णन करने वाला DocumentSecurity मान रिपोर्ट करता है: None, PasswordProtected, ReadOnlyRecommended, ReadOnlyEnforced, या ReadOnlyExceptAnnotations. लोड किए गए दस्तावेज़ पर आगे सुरक्षा-संबंधित प्रोसेसिंग की आवश्यकता है या नहीं, इसका निर्णय लेने से पहले इस प्रॉपर्टी को पढ़ें।


सामान्य समस्याएँ और समाधान

एक को अनुक्रमित करना CustomDocumentProperties नाम से संग्रह कुछ उपयोगी नहीं लौटाता। इस दस्तावेज़ में यह प्रॉपर्टी मौजूद नहीं है। कॉल Contains(name) पहले, या उपयुक्त के साथ प्रॉपर्टी जोड़ें Add(name, value) ओवरलोड.

कस्टम प्रॉपर्टी का मान पढ़ने पर गलत प्रकार मिलता है। DocumentProperty.Value टाइप रहित है object; कॉलर ने ऐसा प्रकार मान लिया है जो मेल नहीं खाता Type. संबंधित टाइप्ड एक्सेसर का उपयोग करें (ToInt(), ToDouble(), ToDateTime(), ToBool(), ToByteArray()) के आधार पर DocumentProperty.Type.

एक लिंक्ड कस्टम प्रॉपर्टी का मान पुराना दिख रहा है। प्रॉपर्टी लिंक्ड है द्वारा AddLinkToContent, और बुकमार्क किया गया कंटेंट बदल गया है। पुष्टि करें कि linkSource बुकमार्क अभी भी उस रेंज को मार्क करता है जो प्रॉपर्टी के मान को फ़ीड करना चाहिए।

शब्द सांख्यिकी जैसे कि Characters or Lines दस्तावेज़ की वास्तविक वर्तमान सामग्री से मेल नहीं खाते। निर्मित आँकड़े संग्रहीत मेटाडेटा को दर्शाते हैं, न कि वास्तविक पुनर्गणना। संबंधित को पुनः गणना करके अपडेट करें। BuiltInDocumentProperties मान यदि एक अद्यतन गणना आवश्यक हो।


अक्सर पूछे जाने वाले प्रश्न

मैं दस्तावेज़ के लेखक और शीर्षक को कैसे पढ़ूँ या सेट करूँ?

सीधे Document.BuiltInDocumentProperties.Author और .Title का उपयोग करें — ये Document.BuiltInDocumentProperties से पहुँची गई BuiltInDocumentProperties संग्रह पर सामान्य स्ट्रिंग गुण हैं।

मैं ऐसे एप्लिकेशन-विशिष्ट मेटाडेटा को कैसे जोड़ूँ जो मानक Word गुण नहीं है?

Document.CustomDocumentProperties.Add(name, value) को गुण के नाम और मान के साथ उपयोग करें; मान के प्रकार के आधार पर मिलते-जुलते Add ओवरलोड का चयन किया जाता है।

BuiltInDocumentProperties और CustomDocumentProperties में क्या अंतर है?

BuiltInDocumentProperties Word के मानक मेटाडेटा फ़ील्ड का स्थिर सेट है, जिसे नामित सदस्य के रूप में एक्सेस किया जाता है। CustomDocumentProperties एप्लिकेशन-परिभाषित मेटाडेटा के लिए DocumentProperty मानों का एक खुला, नामित संग्रह है, जिसे इंडेक्सर के माध्यम से नाम से एक्सेस किया जाता है (उदाहरण के लिए properties[name]) और Contains।

मैं एक कस्टम प्रॉपर्टी को स्थैतिक मान के बजाय दस्तावेज़ की किसी सामग्री को ट्रैक करने के लिए कैसे बनाऊँ?

CustomDocumentProperties.AddLinkToContent(name, linkSource) का उपयोग करें, बुकमार्क नाम को linkSource के रूप में पास करके; प्रॉपर्टी का मान फिर उस बुकमार्क की गई सामग्री को दर्शाएगा।

मैं यह कैसे जांचूँ कि दस्तावेज़ पासवर्ड से सुरक्षित है?

पढ़ें Document.BuiltInDocumentProperties.Security, एक DocumentSecurity मान; PasswordProtected दर्शाता है कि दस्तावेज़ के संग्रहीत मेटाडेटा में पासवर्ड संरक्षण घोषित किया गया है।


यह भी देखें

 हिन्दी