Trabajar con DOCX Reader
Trabajar con DOCX Reader
El DocumentReader El código de la clase es Open XML (.docxEl modelo de documento ligero (LDM) trata los parágrafos, las tablas, formas, imágenes y formatos, haciendo que el contenido esté disponible para manipulación o conversión.
Leer un archivo DOCX
La forma más sencilla es utilizar el Document El fabricante, que selecciona automáticamente el DocumentReader Para .docx Los archivos:
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 de DocumentReader
DocumentReader Utilizan dos mezclas para dividir las responsabilidades:
| Componente | ROLLO |
|---|---|
DocumentReader | Parser DOCX principal - lea partes XML del paquete OPC |
LdmBuilderMixin | Construcción del modelo de documento de luz a partir de datos parsed |
ShapeParserMixin | Pares dibujando y formando elementos incorporados en el documento |
Todos los tres trabajan juntos internamente — usted interactúa con el resultado a través de la Document API.
Extracción de texto
Uso get_text() en un documento cargado para extraer texto plano sin salvar a un archivo:
import aspose.words_foss as aw
doc = aw.Document("contract.docx")
text = doc.get_text()
print(text[:500])Trabajar con parágrafos y formatos
Acceso a las propiedades de nivel del párrafo a través del 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 uno Run lleva propiedades de la letra (boldo, itálico, tamaño, color) que fueron parsed desde el DOCX XML.
Tratar formas y imágenes
El ShapeParserMixin extractos de elementos dibujantes durante el parsillo. formas aparecen en la LDM como ShapeNode Objetos dentro del contenido del párrafo:
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}")Consejos y mejores prácticas
- Uso
Document("file.docx")para flujos de trabajo estándar: gestiona la selección del lector, la validación del paquete y la construcción LDM automáticamente. - Para la entrada basada en el flujo (encarga web), pasa un objeto similar al archivo a la página de
DocumentEl constructor. - Para los archivos con tablas, acceda a ellos mediante
doc.tablesodoc.all_tables. - Para el procesamiento de batch, reutilizar el mismo proceso Python para evitar la repetición del sobrepasa.
Problemas comunes
| Problemas | Causas | Fixado |
|---|---|---|
| No descargar archivos (excepción) | Archivo ZIP corrompido o incompleto | Verificar el archivo es válido .docx (Paceto OPC basado en ZIP) |
| Imágenes perdidas en la producción | Partes de imagen no incorporadas en el paquete | Verifique que el DOCX contiene imágenes incorporadas (no vinculadas) |
| El contenido en la producción se pierde | Partes XML ausentes de la paquete | El archivo puede ser truncado; reexportar desde la aplicación de fuente |
FAQ
¿Qué es el Modelo de Documento Luz (LDM)?
El LDM es la representación interna compartida entre todos los lectores. se abstracta detalles específicos de formato (OPC XML, OLE2 binario) en una estructura común de secciones, parágrafos, rutas, tablas y formas.
¿Puede Docreader gestionar los archivos DOCM (macro-activados)?
Macro-enabled .docm Los archivos utilizan la misma estructura de OPC. El lector puede parse el contenido del documento, pero los macros no se conservan ni se ejecutan.
¿Cómo el lector trata los grandes documentos?
El lector procesa las partes XML secuencialmente. escalas de uso de la memoria con tamaño del documento. Para documentos muy grandes, considere secciones de procesamiento individualmente.
Sumación de referencia API
| Clase / Método | Descripción |
|---|---|
DocumentReader | Lea documentos DOCX y produce estructuras de datos abstractos |
LdmBuilderMixin | Mixin proporciona métodos de construcción del modelo de documento ligero |
ShapeParserMixin | Mixin proporciona métodos de dibujo/forma de parsillo |
Document | Representa un documento de Word (la raíz LDM) |
create_reader(path) | Fábrica que devuelve al lector correcto para una extensión de archivo |