Créer un modèle de document lumineux avec DocumentReader

Créer un modèle de document lumineux avec DocumentReader

Créer un modèle de document lumineux avec DocumentReader

DocumentReader Il s’agit du point d’entrée pour la lecture des fichiers DOCX dans Aspose.Words FOSS. Il accepte l’entrée comme un fil, un I/O stream ou des bytes crus, puis expose le fichier. Document comme a light_document_model.Document (LDM) - un objet de Python structuré Un arbre qui est facile à inspecter et à transformer.


Principaux

Requirementsdétails
Python3.9 or later
Packageaspose-words-foss (Mont en licence)
IntroductionA .docx fichiers, flux ou bytes
pip install aspose-words-foss

Chargement à partir d’un chemin de fichier

DocumentReader.load_file(filepath) Lire un fichier DOCX par voie. to_light_document() Pour obtenir la représentation LDM.

from aspose.words_foss import DocumentReader

reader = DocumentReader()
reader.load_file("data/report.docx")
doc = reader.to_light_document()

print("Page count:", doc.page_count)
print("Sections:", len(doc.sections))

Enchargeant d’un courant

DocumentReader.load_stream(stream) accepte tout objet de fichier avec un read() Ceci est utile pour les données provenant de réponses HTTP, des archives ZIP ou Les buffers de mémoire.

from aspose.words_foss import DocumentReader

reader = DocumentReader()
with open("data/report.docx", "rb") as fh:
    reader.load_stream(fh)

doc = reader.to_light_document()
print("Paragraphs:", len(doc.all_paragraphs))

Charger des Bytes

DocumentReader.load_bytes(data) accepter A bytes ou bytearray Objet : Utilisation lorsque le contenu DOCX est déjà en mémoire (par exemple, obtenu d’une base de données) ou programmés par le biais de la construction).

from aspose.words_foss import DocumentReader

with open("data/report.docx", "rb") as fh:
    data = fh.read()

reader = DocumentReader()
reader.load_bytes(data)
doc = reader.to_light_document()
print("Text preview:", doc.text[:200])

Navigation dans la structure LDM

Après la convocation to_light_document(),Le retourné Document L’objet expose la Le document complet :

from aspose.words_foss import DocumentReader

reader = DocumentReader()
reader.load_file("data/report.docx")
doc = reader.to_light_document()

# Sections
for section in doc.sections:
    print("Section paragraphs:", len(section.paragraphs))

# All paragraphs (flat list across all sections)
for para in doc.all_paragraphs:
    if para.text.strip():
        print(" -", para.text[:80])

# Headings
for heading in doc.headings(max_level=2):
    print("H:", heading.text)

Lire le texte complet du document

Document.text - Remboursement du contenu en texte complet du document, - Concatenant tous les paragraphes dans toutes les sections :

reader = DocumentReader()
reader.load_file("data/report.docx")
doc = reader.to_light_document()
print(doc.text[:500])

Conseils et meilleures pratiques

  • Toujours appeler load_file(), load_stream(),ou load_bytes() Avant de appeler to_light_document() - appeler to_light_document() sur un lecteur non chargé Il peut causer une erreur ou retourner un document vide.
  • Utiliser load_bytes() lorsque vous contrôlez le cycle de vie du document dans la mémoire; il évite ouverture des fichiers.
  • Utiliser doc.all_paragraphs pour une itération plate sur tous les paragraphes ; utilisation doc.sections Quand vous devez travailler section par section.
  • DocumentReader Implémentations LdmBuilderMixin,Ce qui signifie to_light_document() est disponible en tant que méthode mixte — la même interface est partagée avec d’autres lecteurs Les cours dans la bibliothèque.

Les problèmes communs

ProblèmeCauseFixé
vide doc.sections Après la chargeLe fichier n’est pas un DOCX valide.Vérifiez que le fichier s’ouvre dans Word ; vérifie qu’il n’est pas protégé par mot de passe.
doc.all_paragraphs est videLe document n’a pas de texte corporel (par exemple, seuls les chefs/footers)Vérifier doc.header_paragraphs et doc.footer_paragraphs Au lieu de
AttributeError sur to_light_document()La méthode de charge qui n’est pas appelée avant la conversionAppelez un de load_file(), load_stream(),ou load_bytes() Première

FAQ

Qu’est ce que le LDM ?

Le modèle de document (light_document_model.DocumentIl est un abstrait, Arbre d’objet natif de Python représentant un document Word. Il séparera la logique du document du format binaire DOCX et est conçu pour une manipulation programmatique facile.

Puis-je modifier le LDM et l’écrire à DOCX ?

Après avoir modifié le doc Objet, passez-le à LdmDocxWriter.write(doc, path) pour produire un fichier DOCX mis à jour. voir le Guide de l’auteur Docx Pour les détails.

Ce que fait LdmBuilderMixin ajouter ?

LdmBuilderMixin Il fournit le to_light_document() méthode . DocumentReader hérite de lui, vous pouvez toujours accéder à cette méthode via l’instance lecteur.


Le résumé de référence API

Classes / MéthodesDescription
DocumentReaderLire l’entrée DOCX et construire la représentation LDM
DocumentReader.load_file(filepath)Télécharger un fichier DOCX par voie
DocumentReader.load_stream(stream)Enregistrement d’un fichier-like stream
DocumentReader.load_bytes(data)Le chargement d’une bytes Objets
DocumentReader.to_light_document()Retourner le document chargé en tant que LDM Document
LdmBuilderMixinLe mélange qui fournit to_light_document()
Document.sectionsListe des sections du document
Document.all_paragraphsListe des paragraphes de tous les articles
Document.textContenu en texte complet du document
Document.page_countNombre de pages
Document.headings(max_level)Liste des paragraphes de la liste au-dessus du max_level

Voir aussi

 Français