Travailler avec le lecteur DOCX

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 :

ComposantsRôle
DocumentReaderParceur DOCX principal - lit les parties XML du paquet OPC
LdmBuilderMixinConstruit le modèle de document Lumière à partir des données parsées
ShapeParserMixinLes 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 Document constructeur .
  • Pour les fichiers avec des tables, accédez à ceux-ci via doc.tables ou doc.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èmeCauseFixé
Fichiers non chargés (exception)- Les archives ZIP corrompus ou incomplètesVérifier que le fichier est valide .docx (Pacage OPC basé sur ZIP)
Les images manquantes dans la productionLes pièces d’image non intégrées dans le paquetVérifiez que le DOCX contient des images intégrées (non liées)
Le contenu manqué dans la productionLes éléments XML nécessaires absents du paquetLe 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éthodesDescription
DocumentReaderLire les documents DOCX et produire des structures de données abstraites
LdmBuilderMixinMixin fournit des méthodes de construction du modèle document léger
ShapeParserMixinMixer fournit des méthodes de dessin/formage parsing
DocumentIl représente un document Word (le LDM)
create_reader(path)La fabrication qui retourne le lecteur correct pour une extension de fichier

Voir aussi

 Français