العمل مع قراءة DOC
العمل مع قراءة DOC
Aspose.Words FOSS for Python includes a dedicated reader for legacy Word 97-2003 .doc الملفات. DocFileReader تقوم الطبقة بتحليل النمط الثنائي OLE2 وتنتج نموذجاً وثائقياً خفيفاً (LDM) يمكن التعامل معه أو تحويله إلى تنسيقات أخرى.
تحميل ملف DOC
استخدام DocFileReader لفتح … .doc ملف من القرص وتحويله إلى Document:
import aspose.words_foss as aw
doc = aw.Document("report.doc")
print(f"Paragraphs: {len(doc.all_paragraphs)}")المجلس الوزاري Document المُفوضين من البناة إلى create_reader(),، الذي يختار DocFileReader تلقائياً على أساس .doc تمديد.
استخدام 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 | قراءة من عازل الذاكرة |
بناء نموذج وثيقة الضوء
بعد التحميل، اتصل to_light_document() في DocFileReader لإنتاج 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() وظيفة factory تعيد القارئ المناسب بناءً على امتداد الملف:
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 و DocPaleReadingCore؟?
DocFileReaderCore يتعامل مع تحليل الثنائي منخفض المستوى لتنسيق OLE2. DocFileReader يمتد إلى ذلك بإضافة المادة التالية: to_light_document() طريقة تنتج LDM كاملة. Document مناسبة للتحويل.
هل يمكنني تحميل ملف DOC من التيار؟?
نعم، استخدمها. DocFileReaderCore.load_stream(stream) أو تمرير ملف مثل الكائن. هذا مفيد لتطبيقات الويب حيث يتم تحميل الملفات كتيار.
هل يقوم قارئ DOC بمعالجة الملفات المحمية بكلمة مرور؟?
محمية بكلمة مرور .doc الملفات غير مدعومة حالياً. سيقوم القارئ بإثارة استثناء إذا كان المستند مشفر.
ملخص مرجع API
| الفئة / الطريقة | وصف |
|---|---|
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) | مصنع يعيد القارئ الصحيح لموسع ملف |