Trabajar con DOC Reader
Trabajar con DOC Reader
Aspose.Words FOSS for Python includes a dedicated reader for legacy Word 97-2003 .doc Los archivos. el DocFileReader La clase parsa el formato binario OLE2 y produce un Modelo de Documento Luminoso (LDM) que puede ser manipulado o convertido en otros formatos.
Descargar un archivo DOC
Uso DocFileReader Para abrir a .doc El archivo se conecta a un disco y lo convierte en una Document:
import aspose.words_foss as aw
doc = aw.Document("report.doc")
print(f"Paragraphs: {len(doc.all_paragraphs)}")El Document Los constructores delegados a create_reader(),El que selecciona DocFileReader automaticamente, basado en la .doc La extensión.
Usar DocFileReaderCore de forma directa
Control de nivel inferior, instante DocFileReaderCore y llamar sus métodos de carga:
from aspose.words_foss.doc_reader.doc_file_reader_core import DocFileReaderCore
reader = DocFileReaderCore()
reader.load_file("legacy.doc")DocFileReaderCore Se ofrece tres métodos de entrada:
| Metodología | Tipo de entrada | Uso de caso |
|---|---|---|
load_file(filepath) | Archivo Path String | Leer desde el disco |
load_stream(stream) | Objetos similares a archivos | Leer desde upload o network stream |
load_bytes(data) | bytes | Leer más sobre In-Memory Buffer |
El modelo de documento de luz
Después de la carga, llame to_light_document() En el DocFileReader Para producir un LDM Document:
from aspose.words_foss.doc_reader.doc_file_reader import DocFileReader
reader = DocFileReader()
reader.load_file("input.doc")
ldm_doc = reader.to_light_document()El CDC es la representación interna compartida entre todos los lectores (DocFileReader, DocumentReader, TextFileReaderUna vez que tenga un documento LDM, puede guardarlo en cualquier formato de salida apoyado.
El protocolo de DocumentFormatReader
Todos los lectores implementan el DocumentFormatReader Protocolo, que define la interfaz común: load_file(), load_stream(),y, load_bytes().El create_reader() La función de fábrica devolve al lector apropiado basado en la extensión del archivo:
from aspose.words_foss.reader_factory import create_reader
reader = create_reader("data.doc") # returns DocFileReader
reader.load_file("data.doc")Consejos y mejores prácticas
- Utilice el nivel de alta
Document("file.doc")Constructor para la mayoría de los flujos de trabajo: gestiona automáticamente la selección del lector. - Uso
DocFileReaderCoreSólo cuando necesitas acceso directo a la capa de parsillo binario. - Para los archivos recibidos como
bytes(por ejemplo, desde las cargas de HTTP), preferirload_bytes()Evitar la publicación de archivos temporales. - El lector DOC soporta la misma fidelidad de vuelta que el lectora DOCX para texto, parágrafos y formatos básicos.
Problemas comunes
| Problemas | Causas | Fixado |
|---|---|---|
load_file() Aumentar FileNotFoundError | Paseo de archivo incorrecto | Verificar el camino existente antes de llamar |
| Texto de la carga después del cargamento | El archivo no es un OLE2 binario válido. | Confirmar que el archivo es auténtico .doc El formato, no un renombre .docx |
| Falta de formato en la producción | Algunas funciones avanzadas de DOC aún no están apoyadas | Verificar limitations.md Para las características no apoyadas |
FAQ
¿Cuál es la diferencia entre DocFileReader y DocfileRaderCore?
DocFileReaderCore Gestión de la parsura binaria de bajo nivel del formato OLE2. DocFileReader extendrálo añadiendo el to_light_document() El método que produce un LDM completo Document adecuado para la conversión.
¿Puedo cargar un archivo DOC de una corriente?
Sí, usamos DocFileReaderCore.load_stream(stream) o pasar un objeto similar al archivo. Esto es útil para las aplicaciones web donde los archivos se cargan como corrientes.
¿El lector de DOC mantiene los archivos protegidos por contraseña?
contraseña protegida .doc Los archivos no están actualmente apoyados.El lector levantará una excepción si el archivo está cifrado.
Sumación de referencia API
| Clase / Método | Descripción |
|---|---|
DocFileReader | Lector DOC completo con capacidad de construcción LDM |
DocFileReader.to_light_document() | Convertir datos de DOC parsed en un documento LDM |
DocFileReaderCore | El lector de base para Word 97-2003 (.doc) archivos binarios |
DocFileReaderCore.load_file(filepath) | Cargar un archivo DOC desde una ruta |
DocFileReaderCore.load_stream(stream) | Cargar un archivo DOC de una corriente |
DocFileReaderCore.load_bytes(data) | Cargar un archivo DOC desde un buffer de bajetas |
DocumentFormatReader | Interfaz de protocolo para todos los lectores de documentos |
create_reader(path) | Fábrica que devuelve al lector correcto para una extensión de archivo |