DOC रीडर के साथ काम करना
DOC रीडर के साथ काम करना
Aspose.Words FOSS for Python में लेगेसी Word 97-2003 .doc फ़ाइलों के लिए एक समर्पित रीडर शामिल है। DocFileReader क्लास OLE2 बाइनरी फ़ॉर्मेट को पार्स करती है और एक Light Document Model (LDM) बनाती है जिसे हेरफेर किया जा सकता है या अन्य फ़ॉर्मेट में परिवर्तित किया जा सकता है।
DOC फ़ाइल लोड करना
डिस्क से .doc फ़ाइल खोलने और उसे Document में परिवर्तित करने के लिए DocFileReader का उपयोग करें:
import aspose.words_foss as aw
doc = aw.Document("report.doc")
print(f"Paragraphs: {len(doc.all_paragraphs)}")Document कंस्ट्रक्टर create_reader() को सौंपता है, जो .doc एक्सटेंशन के आधार पर DocFileReader को स्वचालित रूप से चुनता है।
DocFileReaderCore का प्रत्यक्ष उपयोग
निचले स्तर के नियंत्रण के लिए, DocFileReaderCore को इंस्टैंशिएट करें और उसकी लोड मेथड्स को कॉल करें:
from aspose.words_foss.doc_reader.doc_file_reader_core import DocFileReaderCore
reader = DocFileReaderCore()
reader.load_file("legacy.doc")DocFileReaderCore तीन इनपुट विधियाँ प्रदान करता है:
| विधि | इनपुट प्रकार | उपयोग मामला |
|---|---|---|
load_file(filepath) | फ़ाइल पथ स्ट्रिंग | डिस्क से पढ़ें |
load_stream(stream) | फ़ाइल-समान ऑब्जेक्ट | अपलोड या नेटवर्क स्ट्रीम से पढ़ें |
load_bytes(data) | bytes | इन-मेमोरी बफ़र से पढ़ें |
लाइट डॉक्यूमेंट मॉडल बनाना
लोड करने के बाद, DocFileReader पर to_light_document() को कॉल करें ताकि एक LDM Document उत्पन्न हो:
from aspose.words_foss.doc_reader.doc_file_reader import DocFileReader
reader = DocFileReader()
reader.load_file("input.doc")
ldm_doc = reader.to_light_document()LDM सभी रीडर्स (DocFileReader, DocumentReader, TextFileReader) के बीच साझा की गई आंतरिक प्रतिनिधित्व है। एक बार जब आपके पास LDM दस्तावेज़ हो, तो आप इसे किसी भी समर्थित आउटपुट फ़ॉर्मेट में सहेज सकते हैं।
यह DocumentFormatReader प्रोटोकॉल
सभी रीडर्स DocumentFormatReader प्रोटोकॉल को लागू करते हैं, जो सामान्य इंटरफ़ेस को परिभाषित करता है: load_file(), load_stream(), और load_bytes(). create_reader() फ़ैक्ट्री फ़ंक्शन फ़ाइल एक्सटेंशन के आधार पर उपयुक्त रीडर लौटाता है:
from aspose.words_foss.reader_factory import create_reader
reader = create_reader("data.doc") # returns DocFileReader
reader.load_file("data.doc")टिप्स और सर्वोत्तम प्रथाएँ
- अधिकांश वर्कफ़्लो के लिए हाई-लेवल
Document("file.doc")कन्स्ट्रक्टर का उपयोग करें — यह रीडर चयन को स्वचालित रूप से संभालता है। - केवल तब
DocFileReaderCoreका उपयोग करें जब आपको बाइनरी पार्सिंग लेयर तक सीधे पहुँच की आवश्यकता हो। bytesके रूप में प्राप्त फ़ाइलों के लिए (उदा., HTTP अपलोड्स से), अस्थायी फ़ाइलों को लिखने से बचने के लिएload_bytes()को प्राथमिकता दें।- DOC रीडर टेक्स्ट, पैराग्राफ और बुनियादी फ़ॉर्मेटिंग के लिए DOCX रीडर के समान राउंड-ट्रिप फ़िडेलिटी का समर्थन करता है।
आम समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
load_file() उठाता है FileNotFoundError | गलत फ़ाइल पथ | कॉल करने से पहले पुष्टि करें कि पथ मौजूद है |
| लोड करने के बाद गड़बड़ टेक्स्ट | फ़ाइल वैध OLE2 बाइनरी नहीं है | पुष्टि करें कि फ़ाइल वास्तव में .doc फ़ॉर्मेट है, न कि पुनःनामित .docx |
| आउटपुट में फ़ॉर्मेटिंग गायब है | कुछ उन्नत DOC सुविधाएँ अभी तक समर्थित नहीं हैं | limitations.md में असमर्थित सुविधाओं की जाँच करें |
FAQ
DocFileReader और DocFileReaderCore में क्या अंतर है?
DocFileReaderCore OLE2 फ़ॉर्मेट की लो-लेवल बाइनरी पार्सिंग को संभालता है। DocFileReader इसमें to_light_document() मेथड जोड़कर इसे विस्तारित करता है, जो रूपांतरण के लिए उपयुक्त पूर्ण LDM Document उत्पन्न करता है।
क्या मैं एक DOC फ़ाइल को स्ट्रीम से लोड कर सकता हूँ?
हां। DocFileReaderCore.load_stream(stream) का उपयोग करें या फ़ाइल-समरूप ऑब्जेक्ट पास करें। यह वेब अनुप्रयोगों के लिए उपयोगी है जहाँ फाइलें स्ट्रीम के रूप में अपलोड की जाती हैं।
क्या DOC रीडर पासवर्ड-सुरक्षित फाइलों को संभालता है?
पासवर्ड-सुरक्षित .doc फाइलें वर्तमान में समर्थित नहीं हैं। यदि फ़ाइल एन्क्रिप्टेड है तो रीडर एक अपवाद उठाएगा।
API Reference सारांश
| क्लास / मेथड | विवरण |
|---|---|
DocFileReader | पूरी DOC रीडर जिसमें LDM निर्माण क्षमता है |
DocFileReader.to_light_document() | पार्स किए गए DOC डेटा को LDM दस्तावेज़ में परिवर्तित करता है |
DocFileReaderCore | Word 97-2003 (.doc) बाइनरी फ़ाइलों के लिए कोर रीडर |
DocFileReaderCore.load_file(filepath) | एक पथ से DOC फ़ाइल लोड करें |
DocFileReaderCore.load_stream(stream) | एक स्ट्रीम से DOC फ़ाइल लोड करें |
DocFileReaderCore.load_bytes(data) | एक बाइट्स बफ़र से DOC फ़ाइल लोड करें |
DocumentFormatReader | सभी दस्तावेज़ रीडर्स के लिए प्रोटोकॉल इंटरफ़ेस |
create_reader(path) | फ़ैक्टरी जो फ़ाइल एक्सटेंशन के लिए सही रीडर लौटाती है |