Travailler avec le lecteur DOCX
Travailler avec le lecteur DOCX
Le DocumentReader Le code de la formation est Open XML (.docx) fichiers et produit une structure de données abstraite - le Modèle du Document Lumière (LDM). Il traite les paragraphes, tables, formes, images, et la formatisation, rendant le contenu disponible pour manipulation ou conversion.
Lire un fichier DOCX
La méthode la plus simple est d’utiliser le Document Le constructeur, qui sélectionne automatiquement DocumentReader Pour .docx Les fichiers :
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)Architecture de document
DocumentReader Il utilise deux mélanges pour diviser les responsabilités :
| Composants | Rôle |
|---|---|
DocumentReader | Parceur DOCX principal - lit les parties XML du paquet OPC |
LdmBuilderMixin | Construit le modèle de document Lumière à partir des données parsées |
ShapeParserMixin | Les pars dessin et forme des éléments intégrés dans le document |
Les trois travaillent ensemble à l’intérieur – vous interagissez avec le résultat par le biais de la Document API.
extraire le texte
Utiliser get_text() sur un document chargé pour extraire le texte plain sans enregistrer dans un fichier :
import aspose.words_foss as aw
doc = aw.Document("contract.docx")
text = doc.get_text()
print(text[:500])Travailler avec des paragraphes et la formatisation
Les propriétés d’accès au niveau du paragraphe par le biais de la 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}")Chacun Run porte les propriétés de la lettre (bull, italic, taille, couleur) qui ont été parsées du DOCX XML.
Traiter les formes et les images
Le ShapeParserMixin extraits d’éléments de dessin pendant le partage. les formes apparaissent dans la LDM comme ShapeNode Les objets dans le contenu du paragraphe :
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}")Conseils et meilleures pratiques
- Utiliser
Document("file.docx")pour les flux de travail standard - il gère automatiquement la sélection du lecteur, la validation des paquets et la construction LDM. - Pour les entrées basées sur le courant (web upload), passez un objet de fichier à la page
Documentconstructeur . - Pour les fichiers avec des tables, accédez à ceux-ci via
doc.tablesoudoc.all_tables. - Pour le traitement de la pile, réutilisez le même processus Python pour éviter les surcharges répétées d’importation.
Les problèmes communs
| Problème | Cause | Fixé |
|---|---|---|
| Fichiers non chargés (exception) | - Les archives ZIP corrompus ou incomplètes | Vérifier que le fichier est valide .docx (Pacage OPC basé sur ZIP) |
| Les images manquantes dans la production | Les pièces d’image non intégrées dans le paquet | Vérifiez que le DOCX contient des images intégrées (non liées) |
| Le contenu manqué dans la production | Les éléments XML nécessaires absents du paquet | Le fichier peut être troncé ; re-exportation de l’application source |
FAQ
Qu’est-ce que le modèle de document lumineux (LDM)?
Le LDM est la représentation interne partagée par tous les lecteurs. Il abstrait des détails spécifiques au format (OPC XML, OLE2 binaire) dans une structure commune de sections, paragraphes, cours, tables et formes.
DocumentReader peut-il gérer les fichiers DOCM (macro-activés)?
Macro-enabled .docm Les fichiers utilisent la même structure OPC. Le lecteur peut parse le contenu du document, mais les macros ne sont pas conservés ou exécutés.
Comment le lecteur traite-t-il de grands documents ?
Le lecteur traite les parties XML séquentiellement.Mémorisation utilisation échelle avec la taille du document.Pour des documents très grands, considérer le traitement de sections individuellement.
Le résumé de référence API
| Classes / Méthodes | Description |
|---|---|
DocumentReader | Lire les documents DOCX et produire des structures de données abstraites |
LdmBuilderMixin | Mixin fournit des méthodes de construction du modèle document léger |
ShapeParserMixin | Mixer fournit des méthodes de dessin/formage parsing |
Document | Il représente un document Word (le LDM) |
create_reader(path) | La fabrication qui retourne le lecteur correct pour une extension de fichier |