Construirea unui model de document ușor cu DocumentReader

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
Python3.9 or later
Paletă de serviciiaspose-words-foss (licențiat de MIT)
IntrareA. Î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(), sau load_bytes() înainte de a suna. to_light_document() apeluri to_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_paragraphs pentru o iterare plată pe toate paragrafele; utilizarea doc.sections când trebuie să lucrezi secţiune cu secţie.
  • DocumentReader echipamente de lucru LdmBuilderMixin, 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 dateCauzaFixare
Eliberaţi. doc.sections după încărcareFişier nu este un DOCX validVerificaț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 conversieiSună 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 / metodaDescriere:
DocumentReaderCiteș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
LdmBuilderMixinMixin care asigură: to_light_document()
Document.sectionsLista secțiunilor din document
Document.all_paragraphsLista de toate paragrafele
Document.textConținutul complet al documentului în text simplu
Document.page_countNumărul de pagini
Document.headings(max_level)Lista rubricelor până la: max_level

Vezi și:

 Română