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

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

यह गाइड दिखाता है कि Document ऑब्जेक्ट मॉडल के साथ Aspose.Words FOSS for .NET में कैसे काम किया जाए: एक खाली दस्तावेज़ बनाना, मौजूदा को सुरक्षित रूप से लोड करना, उसकी सेक्शन/बॉडी संरचना को पार करना, दस्तावेज़ों को मिलाना, और एक संपादन प्रतिबंध लागू करना। Aspose.Words FOSS for .NET NuGet के माध्यम से या स्रोत से बनाकर उपलब्ध है।

चरण-दर-चरण गाइड

चरण 1: लाइब्रेरी प्राप्त करें

रिपॉज़िटरी को क्लोन करें और बिल्ड करें Aspose.Words.sln Release कॉन्फ़िगरेशन में, फिर प्रोजेक्ट रेफ़रेंस जोड़ें Aspose.Words.csproj अपने अपने .NET प्रोजेक्ट से। पूरी क्लोन और बिल्ड कमांड्स यहाँ हैं स्थापना मार्गदर्शिका. रेफ़रेंस होने के बाद, जोड़ें using Aspose.Words; ऐसे किसी भी फ़ाइल के शीर्ष पर जो दस्तावेज़ों के साथ काम करती है।


चरण 2: दस्तावेज़ बनाएं या लोड करें

एक खाली दस्तावेज़ के लिए new Document() को कॉल करें, या एक फ़ाइल पथ या Stream को Document(fileName) / Document(stream) कन्स्ट्रक्टर में पास करें ताकि मौजूदा एक खोल सकें। एक ओवरलोड जो LoadOptions आर्ग्यूमेंट स्वीकार करता है, आपको एन्क्रिप्टेड फ़ाइल के लिए पासवर्ड प्रदान करने की अनुमति देता है। ऐसी फ़ाइल को लोड करने से पहले जिसका फॉर्मेट आप पहले से भरोसेमंद नहीं मानते, FileFormatUtil.DetectFileFormat(fileName) को कॉल करें — यह एक FileFormatInfo लौटाता है जो पता लगाए गए LoadFormat और यह कि फ़ाइल IsEncrypted, HasDigitalSignature, या HasMacros है, की रिपोर्ट करता है, ताकि आप अप्रत्याशित इनपुट को अस्वीकार कर सकें इससे पहले कि Document इसे पार्स करने की कोशिश करे।


चरण 3: DocumentBuilder के साथ सामग्री लिखें

DocumentBuilder एक Document को घेरता है जिसमें एक कर्सर होता है जिसे आप सामग्री डालते समय पेड़ के माध्यम से ले जाते हैं। Write(text) और Writeln(text) कर्सर पर पाठ डालते हैं, और InsertParagraph() एक नया पैराग्राफ शुरू करता है। बिल्डर के Font, ParagraphFormat, ListFormat, और PageSetup गुणों पर सेट किया गया फॉर्मेटिंग अगले लिखे जाने वाले किसी भी चीज़ पर लागू होता है। कर्सर को MoveToDocumentStart(), MoveToDocumentEnd(), MoveToSection(sectionIndex), MoveToBookmark(bookmarkName), या MoveToParagraph(paragraphIndex, characterIndex) से पुनःस्थापित करें, और CurrentNode / CurrentParagraph / CurrentSection पढ़ें ताकि आप पुष्टि कर सकें कि बिल्डर कहाँ स्थित है।


चरण 4: अनुभाग और बॉडी संरचना की जाँच करें

एक Document SectionCollection को Document.Sections के माध्यम से उजागर करता है (प्लस FirstSection / LastSection)। प्रत्येक Section में ठीक एक Body होता है, जिसका मुख्य सामग्री Body.Paragraphs (एक ParagraphCollection) और Body.Tables के माध्यम से पहुँचा जा सकता है। नोड्स को मैन्युअल रूप से चलाए बिना पाठ पढ़ने या खोजने के लिए, Document, Section, Paragraph और अन्य नोड्स पर उपलब्ध Range का उपयोग करें — Range.Text उसका साधारण पाठ लौटाता है, और Range.Replace(pattern, replacement) केवल उस रेंज तक सीमित खोज-और-प्रतिस्थापन करता है।


चरण 5: दो दस्तावेज़ों को मिलाएँ

पूरे दस्तावेज़ को कॉपी करने के लिए, Document.Clone() को कॉल करें। एक Document इंस्टेंस से विशिष्ट सामग्री को दूसरे में लाने के लिए, लक्ष्य दस्तावेज़ पर ImportNode(srcNode, isImportChildren) को कॉल करें, या स्रोत दस्तावेज़ के प्रत्येक अनुभाग को वर्तमान वाले के अंत में जोड़ने के लिए Document.AppendDocument(srcDoc, importFormatMode) को कॉल करें। DocumentBuilder.InsertDocument(srcDoc, importFormatMode) भी यही करता है लेकिन अंत में नहीं, बिल्डर के कर्सर पर डालता है। इन तीनों मामलों में, ImportFormatMode मान — KeepSourceFormatting, UseDestinationStyles, या KeepDifferentStyles — को जानबूझकर चुनें, क्योंकि यह तय करता है कि दो दस्तावेज़ों के टकराने पर किसका स्टाइल जीतता है।


चरण 6: संपादन प्रतिबंध लागू करें

Document.Protect(type, password) को ProtectionType मान — ReadOnly, AllowOnlyComments, AllowOnlyRevisions, या AllowOnlyFormFields — के साथ कॉल करें ताकि दस्तावेज़ के लिए Word द्वारा स्वीकार किए जाने वाले संपादनों को सीमित किया जा सके। Unprotect() (मिलते हुए पासवर्ड के साथ या बिना) प्रतिबंध को हटाता है। यह केवल Word के भीतर संपादन को प्रभावित करता है; यह सहेजे गए फ़ाइल को एन्क्रिप्ट नहीं करता। फ़ाइल को खोलने के लिए पासवर्ड की आवश्यकता रखने के लिए, सहेजते समय OoxmlSaveOptions.Password सेट करें।

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

Document(fileName) वर्ड में ठीक से खुलने वाली फ़ाइल के लिए थ्रो करता है। फ़ाइल का फ़ॉर्मेट इस संस्करण के लोडर्स द्वारा समर्थित नहीं है। कॉल करें FileFormatUtil.DetectFileFormat(fileName) पहले जांचें और लौटाए गए को देखें LoadFormat लोड करने का प्रयास करने से पहले।

दस्तावेज़ों के बीच कॉपी किया गया कंटेंट गलत फ़ॉन्ट या शैलियों को अपनाता है। यह ImportFormatMode को पास किया गया AppendDocument or InsertDocument आपकी अपेक्षा से मेल नहीं खाता। पास करें KeepSourceFormatting or UseDestinationStyles डिफ़ॉल्ट पर निर्भर रहने के बजाय स्पष्ट रूप से।

Unprotect() कोई प्रभाव नहीं दिखाता। या तो दस्तावेज़ को पासवर्ड से सुरक्षित नहीं किया गया था (कॉल Unprotect() बिना किसी तर्क के), या प्रदान किया गया पासवर्ड उस पासवर्ड से मेल नहीं खाता Protect() जिसके साथ इसे कॉल किया गया था।

फ़ॉर्मेटिंग जो लागू की गई है DocumentBuilder जहाँ अपेक्षित है वहाँ नहीं दिखती। बिल्डर-स्तर की फ़ॉर्मेटिंग (Font, ParagraphFormat) केवल उस सामग्री पर लागू होती है जो लिखी गई after यह सेट है। कर्सर को ले जाएँ और कॉल करने से पहले फ़ॉर्मेटिंग सेट करें Write/Writeln, बाद में नहीं।

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

मैं एक नया, खाली Word दस्तावेज़ कैसे बनाऊँ?

कॉल new Document()। तुरंत सामग्री डालना शुरू करने के लिए इसे एक DocumentBuilder में लपेटें।

Document.Clone() और ImportNode में क्या अंतर है?

Clone() पूरे दस्तावेज़ को नई Document इंस्टेंस में कॉपी करता है। ImportNode(srcNode, isImportChildren) एक एकल नोड — और वैकल्पिक रूप से उसके बच्चों को — एक दस्तावेज़ के ट्री से दूसरे में लाता है, जिसका उपयोग आप विशिष्ट सामग्री को मिलाने के लिए करते हैं, न कि पूरे दस्तावेज़ों को।

फ़ाइल का फ़ॉर्मेट लोड करने से पहले सुरक्षित रूप से कैसे जाँचूँ?

कॉल FileFormatUtil.DetectFileFormat(fileName) (या Stream ओवरलोड) और फ़ाइल को Document को पास करने से पहले लौटाए गए FileFormatInfo की LoadFormat, IsEncrypted, HasDigitalSignature, और HasMacros प्रॉपर्टीज़ की जाँच करें।

मैं दस्तावेज़ के बॉडी के भीतर केवल पैराग्राफ़ कैसे पढ़ूँ?

सेक्शन के Body पर Body.Paragraphs कलेक्शन का उपयोग करें, या अन्य नोड प्रकारों के लिए Body.GetChildNodes(nodeType, isDeep) का उपयोग करें।

क्या Document.Protect सहेजी गई फ़ाइल को एन्क्रिप्ट करता है?

नहीं — यह एक संपादन प्रतिबंध है जिसे Word फ़ाइल खोलते समय लागू करता है। फ़ाइल को स्वयं खोलने के लिए पासवर्ड की आवश्यकता होने पर, OoxmlSaveOptions.Password सेट करें जब आप Document.Save को कॉल करें।

यह भी देखें

 हिन्दी