Construirea unui model de document ușor cu DocumentReader
Construirea unui model de document ușor cu DocumentReader
DocumentReader este punctul de intrare pentru citirea fișierelor DOCX în Aspose.Words FOSS. Acceptă intrarea ca o cale de fișiere, un flux I/O sau bați cruzi și apoi expune datele. document ca un light_document_model.Document (LDM) un obiect Python structurat un copac care este usor de inspectat si transformat.
Condiții prealabile
| Cerință | Detalii |
|---|---|
| Python | 3.9 or later |
| Paletă de servicii | aspose-words-foss (licențiat de MIT) |
| Intrare | A. În cazul în care: .docx fișier, flux sau bytes |
pip install aspose-words-fossÎncărcarea dintr-o cale de fișier
DocumentReader.load_file(filepath) Citeşte un fişier DOCX după traseu. to_light_document() în continuare pentru a obține reprezentarea 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))Încărcare dintr-un flux
DocumentReader.load_stream(stream) acceptă orice obiect de tip fișier cu un read() metoda. Acest lucru este util pentru datele provenite din răspunsuri HTTP, arhive ZIP sau bufere în memorie.
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))Încărcare de la Bytes
DocumentReader.load_bytes(data) acceptă o bytes sau de: bytearray Obiect. Utilizare acest lucru atunci când conținutul DOCX este deja în memorie (de exemplu, obținute dintr-o bază de date) sau construite programatic).
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])Navigarea structurii LDM
După ce sună. to_light_document(), a fost returnată . Document Obiectul expune Arborele complet al documentului:
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)Citirea textului complet al documentului
Document.text returnează conținutul complet al documentului în text simplu;, concatenarea textului tuturor paragrafelor în toate secțiunile:
reader = DocumentReader()
reader.load_file("data/report.docx")
doc = reader.to_light_document()
print(doc.text[:500])Sfaturi şi cele mai bune practici
- Întotdeauna sună.
load_file(),load_stream(), sauload_bytes()înainte de a suna.to_light_document()apelurito_light_document()pe un cititor neîncărcat poate produce o eroare sau returnă un document gol. - Utilizare:
load_bytes()când controlați ciclul de viață al documentului în memorie; se evită deschiderea manetelor de fişiere. - Utilizare:
doc.all_paragraphspentru o iterare plată pe toate paragrafele; utilizareadoc.sectionscând trebuie să lucrezi secţiune cu secţie. DocumentReaderechipamente de lucruLdmBuilderMixin, ceea ce înseamnă căto_light_document()este disponibilă ca o metodă de amestecare aceeași interfață este partajată cu alte cititori. cursuri în bibliotecă.
Probleme comune
| Numărul de date | Cauza | Fixare |
|---|---|---|
Eliberaţi. doc.sections după încărcare | Fişier nu este un DOCX valid | Verificați dacă fișierul se deschide în Word; verificați că nu este protejat cu parolă |
doc.all_paragraphs este goală. | Documentul nu conține text în corpul său (de exemplu, numai intitularea/piatră) | Verifică. doc.header_paragraphs și de: doc.footer_paragraphs în schimbul |
AttributeError în to_light_document() | Metodă de încărcare neutilizată înaintea conversiei | Sună la unul dintre… load_file(), load_stream(), sau load_bytes() Primul . |
FAQ
Ce este LDM?
Modelul documentului ușor (light_document_model.Document) este o abstracție, Arborele obiect nativ Python care reprezintă un document Word. Se separă logica documentului formatul binar DOCX și este conceput pentru o manipulare programată ușoară.
Pot modifica LDM și scrie-l înapoi la DOCX?
Da, după ce am modificat… doc Obiect, trece-l la LdmDocxWriter.write(doc, path) pentru a produce un fișier DOCX actualizat. Vezi LdmDocxGuide pentru scriitori pentru detalii.
Ce face? LdmBuilderMixin - Să adaug?
LdmBuilderMixin se prevede că: to_light_document() metodă. DocumentReader moșteneste din ea astfel încât să accesați întotdeauna această metodă prin intermediul instanței de citit.
Rezultatele de la data aplicării.
| Clasa / metoda | Descriere: |
|---|---|
DocumentReader | Citește inputul DOCX și construiește reprezentarea LDM |
DocumentReader.load_file(filepath) | Încărcă un fișier DOCX după calea de acces |
DocumentReader.load_stream(stream) | Încărcături de la un flux similar fișierului |
DocumentReader.load_bytes(data) | Încărcături de la o bytes obiectul |
DocumentReader.to_light_document() | Întoarce documentul încărcat ca un LDM Document |
LdmBuilderMixin | Mixin care asigură: to_light_document() |
Document.sections | Lista secțiunilor din document |
Document.all_paragraphs | Lista de toate paragrafele |
Document.text | Conținutul complet al documentului în text simplu |
Document.page_count | Numărul de pagini |
Document.headings(max_level) | Lista rubricelor până la: max_level |