दस्तावेज़ जानकारी

दस्तावेज़ जानकारी

दस्तावेज़ जानकारी

यह गाइड दिखाता है कि Aspose.Words FOSS for .NET के साथ दस्तावेज़ मेटाडेटा को कैसे पढ़ें और लिखें। प्रत्येक लोड किया गया या नया बनाया गया Document अपनी सामग्री के साथ दो प्रकार का मेटाडेटा रखता है: निर्मित गुणों (लेखक, शीर्षक, शब्द गणना, आदि) का एक निश्चित सेट और आपके द्वारा स्वयं परिभाषित कस्टम गुणों का एक खुला सेट। Aspose.Words FOSS for .NET दस्तावेज़ बॉडी के अंदर इस मेटाडेटा को प्रदर्शित करने वाले Word फ़ील्ड्स को भी लागू करता है — AUTHOR, COMMENTS, और DOCPROPERTY — ताकि गुण मान लाइव, अद्यतन योग्य टेक्स्ट के रूप में दिख सकें।


निर्मित दस्तावेज़ गुण

Document.BuiltInDocumentProperties एक BuiltInDocumentProperties संग्रह लौटाता है जिसमें प्रत्येक मानक Word मेटाडेटा फ़ील्ड के लिए एक गुण होता है: Author, Title, Subject, Comments, Category, Company, Manager, Keywords, CreatedTime, LastSavedTime, LastSavedBy, LastPrinted, RevisionNumber, TotalEditingTime, और आँकड़े जैसे Pages, Words, Characters, CharactersWithSpaces, Paragraphs, तथा Lines. क्योंकि BuiltInDocumentProperties DocumentPropertyCollection से व्युत्पन्न है, यह नाम द्वारा खोज को अपने इंडेक्सर Contains(), IndexOf() के माध्यम से तथा GetEnumerator() के द्वारा क्रमांकन का समर्थन करता है। वही संग्रह PlainTextDocument.BuiltInDocumentProperties पर भी उजागर किया जाता है जब साधारण-पाठ इनपुट के साथ काम किया जाता है।


कस्टम दस्तावेज़ गुण

Document.CustomDocumentProperties एक CustomDocumentProperties संग्रह लौटाता है उन गुणों के लिए जिन्हें कोई एप्लिकेशन स्वयं परिभाषित करता है — मनमाने नाम/मूल्य जोड़े जिन्हें Word निर्मित सेट के साथ संग्रहीत करता है। Add(name, value) के साथ एक गुण जोड़ें, जो CustomDocumentProperties में विभिन्न मान प्रकारों के लिए ओवरलोड किया गया है; नाम द्वारा इंडेक्सर के साथ प्राप्त करें, उदाहरण के लिये properties[name]; और प्रविष्टियों को Remove(name), RemoveAt(index) या Clear() से हटाएँ। AddLinkToContent(name, linkSource) ऐसा गुण बनाता है जिसकी मान दस्तावेज़ के भीतर बुकमार्क या रेंज से जुड़ी होती है, न कि स्थिर मान के रूप में संग्रहीत।

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


दस्तावेज़-जानकारी फ़ील्ड्स

तीन Field उपवर्ग दस्तावेज़ मेटाडेटा को दस्तावेज़ बॉडी के भीतर फ़ील्ड्स के रूप में उजागर करते हैं: FieldAuthor (AUTHOR फ़ील्ड, जिसमें एक AuthorName प्रॉपर्टी है), FieldComments (COMMENTS फ़ील्ड, जिसमें एक Text प्रॉपर्टी है), और FieldDocProperty (DOCPROPERTY फ़ील्ड, जो एक नामित दस्तावेज़ प्रॉपर्टी — बिल्ट-इन या कस्टम — को दस्तावेज़ में पढ़ता है). हर Field की तरह, इन तीनों में बेस Field जीवनचक्र साझा होता है: GetFieldCode() अंतर्निहित फ़ील्ड कोड पढ़ने के लिए, Result / DisplayResult अंतिम गणना किए गए मान को पढ़ने के लिए, Update() मान को पुनः गणना करने के लिए, Unlink() फ़ील्ड को उसके स्थिर परिणाम से बदलने के लिए, और Remove() इसे हटाने के लिए। एक दस्तावेज़-जानकारी फ़ील्ड DocumentBuilder.InsertField(fieldCode) के साथ डालें — उदाहरण के तौर पर AUTHOR या DOCPROPERTY "Company" का फ़ील्ड कोड — या InsertField(fieldType, updateField) ओवरलोड का उपयोग करके FieldType मान जैसे FieldType.FieldAuthor, FieldType.FieldComments, या FieldType.FieldDocProperty के साथ।

क्योंकि FieldDocProperty वह कोई भी दस्तावेज़ प्रॉपर्टी पढ़ता है जिससे यह बंधा होता है, अंतर्निहित BuiltInDocumentProperties या CustomDocumentProperties मान को बदलने के बाद Update() को कॉल करने — या एक साथ दस्तावेज़ में सभी फ़ील्ड्स को रिफ्रेश करने के लिए Document.UpdateFields() — नए मान को फ़ील्ड के प्रदर्शित परिणाम में प्रसारित करता है।


टिप्स और सर्वोत्तम प्रथाएँ

  • सेव करने से पहले Title, Author, और Subject जैसी बिल्ट-इन प्रॉपर्टीज़ सेट करें — Word और अन्य उपभोक्ता इन्हें BuiltInDocumentProperties से पढ़ते हैं दस्तावेज़ सूची और खोज अनुक्रमण के लिए।
  • DocumentProperty.Type का उपयोग करके किसी प्रॉपर्टी के PropertyType को जाँचें, फिर किसी विशिष्ट रूपांतरण हेल्पर (ToInt(), ToDateTime(), आदि) को कॉल करें, ताकि आप द्वारा स्वयं नहीं बनाई गई प्रॉपर्टी पर रूपांतरण विसंगति से बचा जा सके।
  • AddLinkToContent() कस्टम प्रॉपर्टी को दस्तावेज़ सामग्री (जैसे बुकमार्केड रेंज) के साथ सिंक्रनाइज़ रखता है, स्थिर मान के बजाय — इसका उपयोग तब करें जब प्रॉपर्टी को हमेशा वर्तमान दस्तावेज़ की स्थिति को दर्शाना चाहिए।
  • दस्तावेज़ प्रॉपर्टीज़ बदलने के बाद Document.UpdateFields() को कॉल करें ताकि दस्तावेज़ बॉडी में पहले से मौजूद किसी भी FieldDocProperty, FieldAuthor, या FieldComments फ़ील्ड्स नए मान को अपनाएँ।
  • BuiltInDocumentProperties और CustomDocumentProperties दोनों PlainTextDocument पर तथा Document पर उपलब्ध हैं, इसलिए मेटाडेटा राउंड-ट्रिप्स करता है भले ही लोड किया गया कंटेंट सादा टेक्स्ट हो।

सामान्य समस्याएँ

समस्याकारणसमाधान
इंडेक्सर एक कस्टम प्रॉपर्टी के लिए null लौटाता हैप्रॉपर्टी अभी तक जोड़ी नहीं गई हैपहले CustomDocumentProperties.Add(name, value) कॉल करें, या पढ़ने से पहले Contains(name) जांचें
FieldDocProperty प्रॉपर्टी बदलने के बाद पुराना मान दिखाता हैफ़ील्ड रिफ्रेश नहीं किया गयाफ़ील्ड पर Update() को कॉल करें, या दस्तावेज़ में सभी फ़ील्ड को रिफ्रेश करने के लिए Document.UpdateFields() का उपयोग करें
DocumentProperty.ToInt() / ToDateTime() फ़ेंकता हैप्रॉपर्टी का वास्तविक Type अनुरोधित रूपांतरण से मेल नहीं खाता हैकॉल करने के लिए कौन सा रूपांतरण सहायक चुनना है, यह तय करने से पहले DocumentProperty.Type की जाँच करें

FAQ

बिल्ट-इन और कस्टम दस्तावेज़ प्रॉपर्टीज़ में क्या अंतर है?

बिल्ट-इन प्रॉपर्टीज़ (Document.BuiltInDocumentProperties) OOXML फ़ॉर्मेट द्वारा परिभाषित एक स्थिर सेट हैं — Author, Title, Pages, आदि। कस्टम प्रॉपर्टीज़ (Document.CustomDocumentProperties) एक खुला, एप्लिकेशन-परिभाषित नाम/मान जोड़े का सेट हैं जो Add() के साथ जोड़े जाते हैं।

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

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

क्या दस्तावेज़ प्रॉपर्टी को अपडेट करने से वह फ़ील्ड्स जो इसे प्रदर्शित करते हैं, स्वचालित रूप से अपडेट हो जाते हैं?

नहीं — विशिष्ट फ़ील्ड पर Update() को कॉल करें या Document.UpdateFields() का उपयोग करके दस्तावेज़ में प्रत्येक फ़ील्ड को पुनः गणना करें, जिसमें FieldDocProperty, FieldAuthor, और FieldComments उदाहरण शामिल हैं।

क्या मैं साधारण-टेक्स्ट दस्तावेज़ से दस्तावेज़ गुण पढ़ सकता हूँ?

हां। PlainTextDocument वही BuiltInDocumentProperties और CustomDocumentProperties गुण Document के समान उजागर करता है।


API Reference सारांश

क्लास / मेथडविवरण
Document.BuiltInDocumentPropertiesमानक OOXML मेटाडेटा संग्रह (Author, Title, Pages, आदि)
Document.CustomDocumentPropertiesएप्लिकेशन-परिभाषित नाम/मान प्रॉपर्टी संग्रह
CustomDocumentProperties.Add() / नाम द्वारा इंडेक्सर / AddLinkToContent()कस्टम प्रॉपर्टी जोड़ें, प्राप्त करें, या कंटेंट-लिंक करें
DocumentPropertyएकल प्रॉपर्टी प्रविष्टि; Value, Type, और ToString()/ToInt()/ToDouble()/ToDateTime()/ToBool()/ToByteArray() रूपांतरण सहायक
FieldAuthor / FieldComments / FieldDocPropertyAUTHOR, COMMENTS, और DOCPROPERTY फ़ील्ड; Update(), Result, GetFieldCode()
DocumentBuilder.InsertField()फ़ील्ड को फ़ील्ड कोड या FieldType द्वारा सम्मिलित करता है

यह भी देखें

 हिन्दी