Travailler avec DOC Reader
Travailler avec DOC Reader
Aspose.Words FOSS for Python includes a dedicated reader for legacy Word 97-2003 .doc Les fichiers. le DocFileReader La classe parse le format binaire OLE2 et produit un Modèle de document léger (LDM) qui peut être manipulé ou converti en d’autres formats.
Téléchargement d’un fichier DOC
Utiliser DocFileReader ouvrir A .doc le fichier du disque et le convertir en un Document:
import aspose.words_foss as aw
doc = aw.Document("report.doc")
print(f"Paragraphs: {len(doc.all_paragraphs)}")Le Document Les constructeurs délégués à create_reader(),qui sélectionne DocFileReader automatiquement basé sur la .doc extension .
Utiliser DocFileReaderCore directement
Pour un contrôle instantané, le niveau inférieur DocFileReaderCore et appelle ses méthodes de charge :
from aspose.words_foss.doc_reader.doc_file_reader_core import DocFileReaderCore
reader = DocFileReaderCore()
reader.load_file("legacy.doc")DocFileReaderCore Il propose trois méthodes d’entrée :
| méthode | Type d’entrée | Utiliser le cas |
|---|---|---|
load_file(filepath) | Fiche de route string | Lire sur disque |
load_stream(stream) | Objets similaires à des fichiers | Lire sur le site ou le streaming réseau |
load_bytes(data) | bytes | Lire la suite de In-Memory Buffer |
Construire le modèle de document lumineux
Après le chargement, appelez to_light_document() sur DocFileReader Pour produire 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()Le CDC est la représentation interne partagée entre tous les lecteurs (DocFileReader, DocumentReader, TextFileReaderUne fois que vous avez un document LDM, vous pouvez le sauvegarder dans tout format de sortie supporté.
Le protocole de documentFormatReader
Tous les lecteurs ont mis en œuvre le DocumentFormatReader Protocole, qui définit l’interface commune : load_file(), load_stream(),et load_bytes().Le create_reader() La fonction de l’usine retourne le lecteur approprié sur la base d’une extension de fichier :
from aspose.words_foss.reader_factory import create_reader
reader = create_reader("data.doc") # returns DocFileReader
reader.load_file("data.doc")Conseils et meilleures pratiques
- Utilisez le niveau élevé
Document("file.doc")Constructeur pour la plupart des flux de travail – il gère automatiquement le choix du lecteur. - Utiliser
DocFileReaderCoreSeulement lorsque vous avez besoin d’accès direct à la couche de partage binaire. - Pour les fichiers reçus comme
bytes(par exemple, à partir de HTTP upload), préférezload_bytes()Éviter de faire des fichiers temporaires. - Le lecteur DOC soutient la même fidélité de parcours que le lecteurs DOCX pour le texte, les paragraphes et le formatage de base.
Les problèmes communs
| Problème | Cause | Fixé |
|---|---|---|
load_file() Les hauts FileNotFoundError | Un fichier de route incorrect | Vérifier le chemin existant avant de vous appeler |
| Texte enveloppé après charge | Le fichier n’est pas un OLE2 binaire valide. | Confirmez que le fichier est authentique .doc Formats, pas un renommé .docx |
| Manque de formatage dans la production | Certaines fonctionnalités DOC avancées ne sont pas encore supportées | Vérifier limitations.md Pour les caractéristiques non soutenues |
FAQ
Quelle est la différence entre DocFileReader et DocfileRaderCore ?
DocFileReaderCore Il gère le partage binaire de bas niveau du format OLE2. DocFileReader Elle est étendue en ajoutant le to_light_document() Une méthode qui produit un LDM complet Document Adéquate pour la conversion.
Puis-je télécharger un fichier DOC d’un courant ?
Oui, utilisez DocFileReaderCore.load_stream(stream) ou passer un objet comme le fichier.Cela est utile pour les applications web où les fichiers sont téléchargés en tant que flux.
Le lecteur DOC gère-t-il les fichiers protégés par mot de passe ?
Password protégé .doc Les fichiers ne sont pas actuellement supportés. le lecteur soulèvera une exception si le fichier est chiffré.
Le résumé de référence API
| Classes / Méthodes | Description |
|---|---|
DocFileReader | Lecteur DOC complet avec capacité de construction LDM |
DocFileReader.to_light_document() | Convertir les données parsées DOC en un document LDM |
DocFileReaderCore | Reader de base pour Word 97-2003 (.doc) fichiers binaires |
DocFileReaderCore.load_file(filepath) | Télécharger un fichier DOC d’un chemin |
DocFileReaderCore.load_stream(stream) | Télécharger un fichier DOC d’un courant |
DocFileReaderCore.load_bytes(data) | Télécharger un fichier DOC à partir d’un buffer de bytes |
DocumentFormatReader | Interface de protocole pour tous les lecteurs de documents |
create_reader(path) | La fabrication qui retourne le lecteur correct pour une extension de fichier |