Treballar amb lector DOCX

Treballar amb lector DOCX

El DocumentReader classe llegeix Office Open XML (.docx) arxius i produeix una estructura de dades abstracta el Light Document Model (LDM). Tracteja paràgrafs, taules, formes, imatges i formatatge, fent que el contingut estigui disponible per a la manipulació o conversió.


Llegir un arxiu DOCX

L’enfocament més senzill és utilitzar el sistema de correcció del corrent. Document constructor, que selecciona automàticament: DocumentReader per a: .docx arxius:

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)

Arquitectura del documentreader

DocumentReader utilitza dos mixins per dividir responsabilitats:

ComponentRols i funcions
DocumentReaderParser principal DOCX llegeix parts XML del paquet OPC
LdmBuilderMixinConstrueix el model de document Light a partir de dades analitzades
ShapeParserMixinParseja els elements de dibuix i forma incrustats en el document.

Tots tres treballen junts internament interactues amb el resultat a través de la Document API.


Extracció de text

Utilització: get_text() en un document carregat per a extraure text sencer sense guardar-lo en fitxer:

import aspose.words_foss as aw

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

Treballar amb paràgrafs i formatatge

Accedir a propietats de nivell de paràgraf mitjançant el 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}")

Cada un. Run porta propietats de font (en negrit, en cursiva, mida, color) que van ser analitzades des del DOCX XML.


Manejar les formes i imatges

El ShapeParserMixin Les formes apareixen en el LDM com a: ShapeNode objectes dins del contingut dels paràgrafs:

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

Consells i millors pràctiques

  • Utilització: Document("file.docx") per als fluxos de treball estàndard gestiona automàticament la selecció del lector, la validació dels paquets i la construcció LDM.
  • Per a la entrada basada en flux (carregaments web), passar un objecte com un fitxer al sistema de transferència. Document constructor.
  • Per a arxius amb taules, accedeix-hi via doc.tables o de la seva doc.all_tables.
  • Per al processament en batches, reutilitzar el mateix procés Python per evitar les despeses d’importació repetides.

Problemàtiques comuns

EdicióCausaCorrecció
No es carrega el fitxer (excepció)Arxiu ZIP corromput o incompletVerificar que el fitxer és un fichier vàlid. .docx (Paquet OPC basat en ZIP)
Imatges que falten en la sortidaPart de la imatge no inclosos en el paquet.Comprovar que el DOCX conté imatges incrustades (no vinculades)
Contingut absent en la produccióPart requerida d’XML absent del paquetEl fitxer pot ser truncat; reexportació des de l’aplicació font.

FAQ

Què és el model de document lleuger (LDM)?

El LDM és la representació interna compartida entre tots els lectors. Abstrau detalls específics del format (OPC XML, binari OLE2) en una estructura comuna de seccions, paràgrafs, corrents, taules i formes.

Podrà DocumentReader gestionar arxius DOCM (activació de macro)?

Macro habilitada .docm Els arxius utilitzen la mateixa estructura OPC. El lector pot analitzar el contingut del document, però les macros no es conserven ni s’executen.

Com tracta el lector documents grans?

El lector procesa les parts XML de forma seqüencial. L’ús de memòria s’escala amb la mida del document. Per a documents molt grans, considera el processament de seccions individualment.


Resum de referència d’API

Classe / mètodeDescripció
DocumentReaderLlegeix documents DOCX i genera estructures de dades abstractes.
LdmBuilderMixinMèscla que proporciona mètodes de construcció del model Light Document
ShapeParserMixinMitjanç que proporciona mètodes de dibuix/parseig de forma
DocumentRepresenta un document de Word (la arrel LDM)
create_reader(path)Factory que torna el lector correcte per a una extensió de fitxer
 Català