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:
| Component | Rols i funcions |
|---|---|
DocumentReader | Parser principal DOCX llegeix parts XML del paquet OPC |
LdmBuilderMixin | Construeix el model de document Light a partir de dades analitzades |
ShapeParserMixin | Parseja 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.
Documentconstructor. - Per a arxius amb taules, accedeix-hi via
doc.tableso de la sevadoc.all_tables. - Per al processament en batches, reutilitzar el mateix procés Python per evitar les despeses d’importació repetides.
Problemàtiques comuns
| Edició | Causa | Correcció |
|---|---|---|
| No es carrega el fitxer (excepció) | Arxiu ZIP corromput o incomplet | Verificar que el fitxer és un fichier vàlid. .docx (Paquet OPC basat en ZIP) |
| Imatges que falten en la sortida | Part 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 paquet | El 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ètode | Descripció |
|---|---|
DocumentReader | Llegeix documents DOCX i genera estructures de dades abstractes. |
LdmBuilderMixin | Mèscla que proporciona mètodes de construcció del model Light Document |
ShapeParserMixin | Mitjanç que proporciona mètodes de dibuix/parseig de forma |
Document | Representa un document de Word (la arrel LDM) |
create_reader(path) | Factory que torna el lector correcte per a una extensió de fitxer |