العمل مع DOCX Reader

العمل مع DOCX Reader

المجلس الوزاري DocumentReader الصف يقرأ Office Open XML (.docx) يقدم ملفات و ينتج هيكل بيانات مجردة نموذج الوثيقة الخفيفة (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أساسي DOCX المحلل يقرأ أجزاء XML من حزمة OPC
LdmBuilderMixinيقوم بإنشاء نموذج وثيقة الضوء من البيانات المتحللّة
ShapeParserMixinتحليل عناصر الرسم والشكل المضمنة في الوثيقة.

جميعها تعمل معاً داخلياً تتفاعل مع النتيجة من خلال التطبيقات. Document API.


استخراج النص

استخدام get_text() على وثيقة محمولة لاستخراج النص العادي دون حفظها في ملف:

import aspose.words_foss as aw

doc = aw.Document("contract.docx")
text = doc.get_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.
  • في معالجة الدفعات، إعادة استخدام نفس عملية بايثون لتجنب تكلفة الاستيراد المتكررة.

القضايا الشائعة

القضيةالسببإصلاح
الملف غير محمول (استثناء)أرشيف زيب فاسد أو غير كاملتحقق من أن الملف صحيح .docx (حزمة OPC القائمة على ZIP)
الصور المفقودة في الخروجأجزاء الصورة غير المضمنة في العبوةتحقق من أن DOCX يحتوي على صور مدمجة (غير مرتبطة)
محتوى مفقود في الناتجأجزاء XML المطلوبة غائبة من الحزمةيمكن تقطيع الملف؛ إعادة التصدير من التطبيق المصدر.

FAQ

ما هو نموذج الوثيقة الخفيفة (LDM) ؟?

LDM هو التمثيل الداخلي المشترك بين جميع القراء. إنه يستخلص تفاصيل محددة للشكل (OPC XML ، OLE2 ثنائي) في هيكل مشتركة من الأقسام والفقرات والتداولات والأجداد والأشكال.

هل يمكن لـ DocumentReader التعامل مع ملفات DOCM (مُمكّنة للماكرو) ؟?

مكشوفة الكليات .docm الملفات تستخدم نفس هيكل OPC. القارئ يمكنه تحليل محتوى الوثيقة، ولكن لا يتم الحفاظ على الماكروات أو تنفيذها.

كيف يتعامل القارئ مع الوثائق الكبيرة؟?

يقوم القارئ بمعالجة أجزاء XML تسلسليًا. يتناسب استخدام الذاكرة مع حجم المستندات. بالنسبة للمستندين الكبار جدًة ، فكر في معالجة الأقسام بشكل فردي.


ملخص مرجع API

الفئة / الطريقةوصف
DocumentReaderيقرأ وثائق DOCX و ينتج هياكل بيانات مجردة
LdmBuilderMixinطريقة بناء نموذج وثيقة ضوئية
ShapeParserMixinخليط يقدم طرق رسم/تحليل الشكل
Documentيمثل وثيقة Word (جذر LDM)
create_reader(path)مصنع يعيد القارئ الصحيح لموسع ملف
 العربية