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