Lucrarea cu DOCX Reader

Lucrarea cu DOCX Reader

În ceea ce priveşte DocumentReader clasa se citește Office Open XML (.docxÎn cazul în care un document este format din două fișiere, acesta poate produce o structură de date abstractă modelul luminos al documentului (LDM).


Citirea unui fișier DOCX

Cea mai simplă abordare este să folosim Document constructor, care selectează automat: DocumentReader pentru: .docx fişiere:

import aspose.words_foss as aw

doc = aw.Document("input.docx")
print(f"Sections: {len(doc.sections)}")
for para in doc.all_paragraphs:
    print(para.text)

Arhitectura documentului de citire

DocumentReader folosește două mixuri pentru a împărți responsabilitățile:

ComponentaRolul său
DocumentReaderParserul DOCX principal citește părți XML din pachetul OPC
LdmBuilderMixinConstruiește modelul Light Document din date analizate
ShapeParserMixinParsează elementele de desen și forme încorporate în document.

Toate cele trei lucrează împreună intern interacţionaţi cu rezultatul prin intermediul Document API.


Extractarea textului

Utilizare: get_text() pe un document încărcat pentru a extrage text simplu fără salvare într-un fișier:

import aspose.words_foss as aw

doc = aw.Document("contract.docx")
text = doc.get_text()
print(text[:500])

Lucrarea cu paragrafe și formatare

Accesarea proprietăților la nivel de paragraf prin LDM:

import aspose.words_foss as aw

doc = aw.Document("styled.docx")
for para in doc.all_paragraphs:
    for run in para.runs:
        if run.font.bold:
            print(f"Bold: {run.text}")

Fiecare Run poartă proprietăți de font (de mare, italic, dimensiune, culoare) care au fost analizate din DOCX XML.


Manifestarea formelor şi a imaginilor

În ceea ce priveşte ShapeParserMixin extrage elemente de desenare în timpul parsing. forme apar în LDM ca ShapeNode Obiecte în conținutul paragrafului:

import aspose.words_foss as aw

doc = aw.Document("with-images.docx")
for para in doc.all_paragraphs:
    for node in para.content_sequence:
        if hasattr(node, 'shape_type'):
            print(f"Shape: {node.shape_type}")

Sfaturi şi cele mai bune practici

  • Utilizare: Document("file.docx") pentru fluxurile de lucru standard se ocupă automat de selecția cititorului, validarea pachetelor și construirea LDM.
  • Pentru intrarea pe bază de flux (upload-uri web), trece un obiect similar fișierului la Document Constructor. - Ce?.
  • Pentru fișiere cu tabele, accesați-le prin intermediul doc.tables sau de: doc.all_tables.
  • Pentru procesarea în loturi, reutilizați același proces Python pentru a evita costurile suplimentare de import repetate.

Probleme comune

Numărul de dateCauzaFixare
Fișier neîncărcat (excepție)Arhiva ZIP coruptă sau incompletăVerificați fișierul este un valid .docx (Pacetul OPC bazat pe ZIP)
Imagini lipsă în ieșirePiese de imagine neincorporate în ambalajVerificați dacă DOCX-ul conține imagini încorporate (nu legate)
Conținut lipsă în producțieParți XML necesare care nu sunt incluse în pachetFișierul poate fi truncat; reexport din aplicația sursă

FAQ

Ce este modelul documentului luminos (LDM)?

LDM este reprezentarea internă împărțită între toți cititorii. Abstractează detalii specifice formatului (OPC XML, binar OLE2) într-o structură comună de secțiuni, paragrafe, runuri, tabele și forme.

Poate DocumentReader să gestioneze fișiere DOCM (actionate macro)?

Macro-actibilitate .docm Fişierele folosesc aceeaşi structură OPC. Cititorul poate analiza conţinutul documentului, dar macrourile nu sunt păstrate sau executate.

Cum se descurcă cititorul cu documentele mari?

Cititorul procesează secțiunile XML în mod secvențial. Utilizarea memoriei se măsoară cu dimensiunea documentului. Pentru documente foarte mari, considerați procesarea secțiilor individual.


Rezultatele de la data aplicării.

Clasa / metodaDescriere:
DocumentReaderCitește documentele DOCX și produce structuri abstracte de date.
LdmBuilderMixinMetodele de construcție ale modelului document luminos care furnizează amestecul
ShapeParserMixinAmestec care oferă metode de desenare/parsare a formei
DocumentReprezintă un document Word (rădăcina LDM)
create_reader(path)Factoriile care returnează cititorul corect pentru o extensie de fișier
 Română