العمل مع 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) | مصنع يعيد القارئ الصحيح لموسع ملف |