بناء نموذج وثيقة خفيفة باستخدام DocumentReader

بناء نموذج وثيقة خفيفة باستخدام DocumentReader

بناء نموذج وثيقة خفيفة باستخدام DocumentReader

DocumentReader هو نقطة الدخول لقراءة ملفات DOCX في Aspose.Words FOSS . إنه يقبل المدخلات كطريق ملف، أو تيار إدخال/إخراج، او بايت خام ثم يعرض المعلومات. وثيقة كـ light_document_model.Document (LDM) كائن Python مُهيكّل شجرة سهلة التفتيش والتحويل.


المعايير

متطلباتالتفاصيل
Python3.9 or later
حزمةaspose-words-foss (مصدر من MIT)
المدخلات(أ) .docx ملف، أو بث، bytes
pip install aspose-words-foss

تحميل من مسار ملف

DocumentReader.load_file(filepath) يقرأ ملف DOCX عن طريق المسار. to_light_document() بعد ذلك للحصول على تمثيل LDM.

from aspose.words_foss import DocumentReader

reader = DocumentReader()
reader.load_file("data/report.docx")
doc = reader.to_light_document()

print("Page count:", doc.page_count)
print("Sections:", len(doc.sections))

تحميل من تيار

DocumentReader.load_stream(stream) يقبل أي ملف مثل الكائن مع a read() طريقة. هذا مفيد للبيانات القادمة من ردود HTTP ، أو أرشيف ZIP، أو عوائق الذاكرة.

from aspose.words_foss import DocumentReader

reader = DocumentReader()
with open("data/report.docx", "rb") as fh:
    reader.load_stream(fh)

doc = reader.to_light_document()
print("Paragraphs:", len(doc.all_paragraphs))

تحميل من بايتز

DocumentReader.load_bytes(data) يقبل بـ bytes أو bytearray المادة. الاستخدام هذا عندما يكون محتوى DOCX موجود بالفعل في الذاكرة (على سبيل المثال ، تم الحصول عليه من قاعدة بيانات) أو بنيت برمجياً).

from aspose.words_foss import DocumentReader

with open("data/report.docx", "rb") as fh:
    data = fh.read()

reader = DocumentReader()
reader.load_bytes(data)
doc = reader.to_light_document()
print("Text preview:", doc.text[:200])

التنقل في هيكل LDM

بعد الإتصال to_light_document(),، والعودة Document الكائن يعرض المادة. شجرة المستند الكامل:

from aspose.words_foss import DocumentReader

reader = DocumentReader()
reader.load_file("data/report.docx")
doc = reader.to_light_document()

# Sections
for section in doc.sections:
    print("Section paragraphs:", len(section.paragraphs))

# All paragraphs (flat list across all sections)
for para in doc.all_paragraphs:
    if para.text.strip():
        print(" -", para.text[:80])

# Headings
for heading in doc.headings(max_level=2):
    print("H:", heading.text)

قراءة النص الكامل للوثيقة

Document.text يعيد محتوى الوثيقة الكامل في النص العادي،, تكوين كل نص الفقرة عبر جميع الأقسام:

reader = DocumentReader()
reader.load_file("data/report.docx")
doc = reader.to_light_document()
print(doc.text[:500])

نصائح وأفضل الممارسات

  • دائماً اتصل load_file(), load_stream(),أو ، load_bytes() قبل الاتصال to_light_document() الإتصال to_light_document() على قارئ غير محمل قد يثير خطأ أو يعيد وثيقة فارغة.
  • استخدام load_bytes() عندما تتحكم في دورة حياة المستندات في الذاكرة؛ فإنه يتجنب فتح ملفات المفاتيح.
  • استخدام doc.all_paragraphs للتكرار المفروض على جميع الفقرات، استخدام: doc.sections عندما تحتاج إلى العمل قسمًا بعد قسم.
  • DocumentReader الأدوات LdmBuilderMixin,، مما يعني to_light_document() متاح كوسيلة مزيج نفس الواجهة مشتركة مع قارئ آخر في المكتبة.

القضايا المشتركة

القضيةالسببإصلاح
فارغة doc.sections بعد التحميلالملف ليس DOCX صالحاًتحقق من أن الملف يفتح في Word؛ تأكد أنه غير محمي بكلمة مرور
doc.all_paragraphs خاليلا يوجد في المستند نص بالجسد (على سبيل المثال فقط العناوين/البعاء)التحقق doc.header_paragraphs و doc.footer_paragraphs بدلاً من ذلك
AttributeError في to_light_document()طريقة التحميل غير مسموعة قبل التحويلاتصل بأحد load_file(), load_stream(),أو ، load_bytes() أولاً

FAQ

ما هو LDM؟?

نموذج الوثيقة الخفيفة (light_document_model.Document) هو مجرد،, شجرة الكائن الأصلية في Python تمثل مستند Word. فهي تفصل منطق المستندات من تنسيق DOCX الثنائي و صممت للتلاعب البرمجية بسهولة.

هل يمكنني تعديل LDM و إعادة كتابته إلى DOCX؟?

نعم، بعد تعديل الملفات doc أرسله إلى (أوبجيك) LdmDocxWriter.write(doc, path) لإنتاج ملف DOCX محدث. انظر الموقع دليل LdmDocxWriter لمزيد من التفاصيل.

ما الذي يجعلكِ LdmBuilderMixin أضيف؟?

LdmBuilderMixin يقدم المادة التالية: to_light_document() طريقة. DocumentReader ويرث منه لذا يمكنك دائما الوصول إلى هذه الطريقة عبر مثال القارئ.


إشارة API

الفئة / الطريقةوصف
DocumentReaderيقرأ إدخال DOCX و يبني تمثيل LDM
DocumentReader.load_file(filepath)تحميل ملف DOCX حسب المسار
DocumentReader.load_stream(stream)تحميلات من تيار شبيه بالملف
DocumentReader.load_bytes(data)الحمولات من a bytes المادة
DocumentReader.to_light_document()يعيد الوثيقة المحمولة كـ LDM Document
LdmBuilderMixinخليط يوفّر to_light_document()
Document.sectionsقائمة الأقسام في الوثيقة
Document.all_paragraphsقائمة شاسعة لجميع الفقرات
Document.textمحتوى الوثيقة الكامل في النص العادي
Document.page_countعدد الصفحات
Document.headings(max_level)قائمة بالصفوف حتى max_level

انظر أيضا

 العربية