יצירת מודל מסמך אור עם DocumentReader

יצירת מודל מסמך אור עם DocumentReader

יצירת מודל מסמך אור עם DocumentReader

DocumentReader זהו נקודת הכניסה לקריאת קבצי DOCX ב- Aspose.Words FOSS. הוא מקבל את הכניסה כדרך קובץ, זרם I/O או באטים ירוקים, ולאחר מכן מציג את המקור. מסמך כ A light_document_model.Document (LDM) – אובייקט Python מבוסס עץ קל לבדוק ולשנות.


דרישות

דרישותפרטים
Python3.9 or later
חבילהaspose-words-foss (הוא מורשה על ידי
כניסהא .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) מקבל כל אובייקט דומה ל-File עם 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))

מחירים ב-Bytes

DocumentReader.load_bytes(data) מקבלת A bytes או bytearray שימוש - Use זה כאשר תוכן 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 מעודכן.ראו את מדריך ל-DocxWriter על הפרטים .

מה עושה 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

ראה גם

 עברית