DOCX रीडर के साथ काम करना
DOCX रीडर के साथ काम करना
DocumentReader क्लास Office Open XML (.docx) फ़ाइलों को पढ़ती है और एक सारांशित डेटा संरचना — Light Document Model (LDM) बनाती है। यह पैराग्राफ, तालिकाएँ, आकार, छवियाँ और फॉर्मेटिंग को संभालती है, जिससे सामग्री को हेरफेर या रूपांतरण के लिए उपलब्ध किया जा सके।
DOCX फ़ाइल पढ़ना
सबसे सरल तरीका Document कंस्ट्रक्टर का उपयोग करना है, जो स्वचालित रूप से DocumentReader को .docx फ़ाइलों के लिए चुनता है:
import aspose.words_foss as aw
doc = aw.Document("input.docx")
print(f"Sections: {len(doc.sections)}")
for para in doc.all_paragraphs:
print(para.text)DocumentReader आर्किटेक्चर
DocumentReader दो मिक्सिन्स का उपयोग करके जिम्मेदारियों को विभाजित करता है:
| Component | Role |
|---|---|
DocumentReader | मुख्य DOCX पार्सर — OPC पैकेज से XML भाग पढ़ता है |
LdmBuilderMixin | पार्स किए गए डेटा से Light Document Model बनाता है |
ShapeParserMixin | दस्तावेज़ में एम्बेडेड ड्रॉइंग और शेप तत्वों को पार्स करता है |
तीनों एक साथ आंतरिक रूप से कार्य करते हैं — आप परिणाम के साथ Document API के माध्यम से इंटरैक्ट करते हैं।
पाठ निकालना
लोड किए गए दस्तावेज़ पर text प्रॉपर्टी का उपयोग करके फ़ाइल में सहेजे बिना सादा पाठ निकालें:
import aspose.words_foss as aw
doc = aw.Document("contract.docx")
text = doc.text
print(text[:500])पैराग्राफ और फॉर्मेटिंग के साथ काम करना
LDM के माध्यम से पैराग्राफ-स्तर की प्रॉपर्टीज़ तक पहुँचें:
import aspose.words_foss as aw
doc = aw.Document("styled.docx")
for para in doc.all_paragraphs:
for run in para.runs:
if run.font.bold:
print(f"Bold: {run.text}")हर Run में फ़ॉन्ट प्रॉपर्टीज़ (बोल्ड, इटैलिक, आकार, रंग) होते हैं जो DOCX XML से पार्स किए गए थे।
आकार और छवियों को संभालना
ShapeParserMixin पार्सिंग के दौरान ड्राइंग तत्व निकालता है। आकार LDM में पैराग्राफ सामग्री के भीतर ShapeNode ऑब्जेक्ट्स के रूप में प्रकट होते हैं:
import aspose.words_foss as aw
doc = aw.Document("with-images.docx")
for para in doc.all_paragraphs:
for node in para.content_sequence:
if hasattr(node, 'shape_type'):
print(f"Shape: {node.shape_type}")सलाह और सर्वोत्तम प्रथाएँ
- मानक कार्यप्रवाहों के लिए
Document("file.docx")का उपयोग करें — यह पाठक चयन, पैकेज वैधता, और LDM निर्माण को स्वचालित रूप से संभालता है। - स्ट्रीम-आधारित इनपुट (वेब अपलोड) के लिए,
Documentकंस्ट्रक्टर को एक फ़ाइल-समतुल्य ऑब्जेक्ट पास करें। - टेबल वाले फ़ाइलों के लिए, उन्हें
doc.tablesयाdoc.all_tablesके माध्यम से एक्सेस करें। - बैच प्रोसेसिंग के लिए, दोहराए गए इम्पोर्ट ओवरहेड से बचने हेतु वही Python प्रक्रिया पुनः उपयोग करें।
सामान्य समस्याएँ
| समस्या | कारण | सुधारें |
|---|---|---|
| फ़ाइल लोड नहीं हो रही है (अपवाद) | क्षतिग्रस्त या अधूरी ZIP आर्काइव | जांचें कि फ़ाइल वैध .docx (ZIP-आधारित OPC पैकेज) है |
| आउटपुट में छवियां अनुपलब्ध हैं | पैकेज में चित्र भाग एम्बेड नहीं किए गए हैं | जांचें कि DOCX में एम्बेडेड (लिंक किए बिना) चित्र हैं |
| आउटपुट में सामग्री अनुपलब्ध है | आवश्यक XML भाग पैकेज में अनुपस्थित हैं | फ़ाइल में ट्रंकेटेड हो सकती है; स्रोत अनुप्रयोग से पुनः निर्यात करें |
FAQ
Light Document Model (LDM) क्या है?
LDM सभी रीडर्स के बीच साझा की गई आंतरिक प्रतिनिधित्व है। यह फ़ॉर्मेट-विशिष्ट विवरणों (OPC XML, OLE2 बाइनरी) को सेक्शन, पैराग्राफ, रन, टेबल और शेप्स की एक सामान्य संरचना में सारांशित करता है।
क्या DocumentReader DOCM (मैक्रो-सक्षम) फ़ाइलों को संभाल सकता है?
मैक्रो-सक्षम .docm फ़ाइलें वही OPC संरचना उपयोग करती हैं। रीडर दस्तावेज़ की सामग्री को पार्स कर सकता है, लेकिन मैक्रो को संरक्षित नहीं किया जाता या निष्पादित नहीं किया जाता।
रीडर बड़े दस्तावेज़ों को कैसे संभालता है?
रीडर XML भागों को क्रमिक रूप से प्रोसेस करता है। मेमोरी उपयोग दस्तावेज़ के आकार के साथ बढ़ता है। बहुत बड़े दस्तावेज़ों के लिए, अनुभागों को व्यक्तिगत रूप से प्रोसेस करने पर विचार करें।
API Reference सारांश
| क्लास / मेथड | विवरण |
|---|---|
DocumentReader | DOCX दस्तावेज़ पढ़ता है और सारात्मक डेटा संरचनाएँ बनाता है |
LdmBuilderMixin | Mixin जो Light Document Model निर्माण विधियों को प्रदान करता है |
ShapeParserMixin | ड्रॉइंग/शेप पार्सिंग मेथड्स प्रदान करने वाला मिक्सिन |
Document | एक Word दस्तावेज़ (LDM मूल) का प्रतिनिधित्व करता है |
create_reader(path) | फ़ैक्टरी जो फ़ाइल एक्सटेंशन के लिए सही रीडर लौटाती है |