Izgradnja modela laganog dokumenta s DocumentReaderom

Izgradnja modela laganog dokumenta s DocumentReaderom

Izgradnja modela laganog dokumenta s DocumentReaderom

DocumentReader je ulazna točka za čitanje DOCX datoteka u programu Aspose.Words FOSS. Prihvaća ulaz kao putanje datoteke, protok I/O ili sirove bajtove i zatim izloži dokument kao light_document_model.Document (LDM) strukturirani Python objekt drvo koje je lako pregledati i transformirati.


U skladu s člankom 21. stavkom 1.

Odluka o odobrenjuDetaljnije informacije
Python3.9 or later
Sljedeći članak:aspose-words-foss (MIT-licenciran)
Uvodni broj:A. - U redu je. .docx datoteke, strimova ili bytes
pip install aspose-words-foss

Upisivanje s puta datoteke

DocumentReader.load_file(filepath) Čita DOCX datoteku po stazi. to_light_document() Nakon toga, da bi se stekla zastupljenost LDM-a.

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))

Opterećenje s toka

DocumentReader.load_stream(stream) prihvaća bilo datoteku sličan objekat s read() Metod je koristan za podatke koji dolaze iz HTTP odgovora, ZIP arhiva ili u memoriji.

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))

Upotrebljavanje iz Bajtova

DocumentReader.load_bytes(data) prihvaćaju: bytes ili: bytearray -Potreba. To se događa kada je DOCX sadržaj već u memoriji (npr. preuzet iz baze podataka). ili programski konstruirani).

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])

Navigacija u strukturi LDM-a

Nakon što sam nazvao. to_light_document(), vraćena Document Objekat izloži Popis podataka:

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)

Čitanje punog teksta dokumenta

Document.text U ovom slučaju, u skladu s člankom 13. stavkom 1. točkom (a) i podstavkom 2. točkama 3. i 4. ovog članka., U ovom slučaju, u skladu s člankom 72. stavkom 1. točka (a) Uredbe (EU) br. 1303/2013:

reader = DocumentReader()
reader.load_file("data/report.docx")
doc = reader.to_light_document()
print(doc.text[:500])

Savjeti i najbolje prakse

  • Uvijek nazovi. load_file(), load_stream(),ili load_bytes() prije nego što pozoveš. to_light_document() pozivanje to_light_document() na neopterećenom čitatelju može izazvati pogrešku ili vratiti prazan dokument.
  • Upotreba: load_bytes() kada kontrolirate životni ciklus dokumenta u memoriji; to izbjegava Otvaranje rukovode za datoteke.
  • Upotreba: doc.all_paragraphs za ravnu iteraciju na svim stavcima; upotrebljavanje doc.sections Kada treba raditi dio po deo.
  • DocumentReader uređaji za rušenje LdmBuilderMixin, što znači da je to bilo… to_light_document() dostupna je kao metoda mixin isti sučelja se dijeli s drugim čitateljima Uči u knjižnici.

Zajednički problemi

IzdavanjeUzrokPopraviti
Prazno. doc.sections nakon opterećenjaDatoteka nije valjan DOCXProvjerite da li je datoteka otvorena u Wordu; provjeriti nije zaštitljena lozinkom
doc.all_paragraphs je prazan.U dokumentu nema teksta u tijelu (npr. samo zaglavlje/podnožje)Čekaj. doc.header_paragraphs i u članku 1. doc.footer_paragraphs umjesto toga.
AttributeError na: to_light_document()Metoda opterećenja nije pozvana prije pretvaranjaNazovi jednog od… load_file(), load_stream(),ili load_bytes() Prvo.

FAQ

Što je LDM?

U tom smislu, Komisija je u skladu s člankom 73. stavkom 1. točkom (b) Uredbe.light_document_model.Document) je apstraktna, Python-native objektno stablo koje predstavlja Word dokument. Odvaja logiku dokumenta Iz binarnog formata DOCX i dizajniran je za jednostavnu programsku manipulaciju.

Mogu li modificirati LDM i napisati ga natrag na DOCX?

Da, nakon što je modifikovao… doc Predmet, proslijedi ga. LdmDocxWriter.write(doc, path) Da biste dobili ažurirani DOCX datoteku. Vidjeti na LdmDocxPravitelj vodič Za detalje.

Što to znači? LdmBuilderMixin -Da, dodao sam.?

LdmBuilderMixin utvrđuje: to_light_document() metoda. DocumentReader nasljeđuje od njega tako da uvijek pristupite ovoj metodi preko čitatelja.


Svrha referentnog API-a

Klasa / metodaOpisivanje
DocumentReaderČita ulaz DOCX i gradi LDM predstavljanje
DocumentReader.load_file(filepath)Pristup DOCX datoteke prema stazi
DocumentReader.load_stream(stream)Opterećenja iz struje poput datoteke
DocumentReader.load_bytes(data)Tovar iz bytes predmet
DocumentReader.to_light_document()Vrati učitavan dokument kao LDM Document
LdmBuilderMixinMixin koji pruža: to_light_document()
Document.sectionsPopis odjeljaka u dokumentu
Document.all_paragraphsPopis svih stavaka
Document.textU skladu s člankom 15. stavkom 1. točkom (a) Uredbe (EU) br. 1308/2013
Document.page_countBroj stranica
Document.headings(max_level)Popis naslovnih stavaka do: max_level

Također pogledajte:

 Hrvatski