Werken met DOCX Reader

Werken met DOCX Reader

Werken met DOCX Reader

De DocumentReader klasse leest Office Open XML (.docx) bestanden en produceert een abstracte datastructuur — het Light Document Model (LDM). Het verwerkt alinea’s, tabellen, vormen, afbeeldingen en opmaak, waardoor de inhoud beschikbaar is voor manipulatie of conversie.


Een DOCX-bestand lezen

De eenvoudigste aanpak is het gebruik van de Document constructor, die automatisch DocumentReader selecteert voor .docx bestanden:

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)

DocumentReader Architectuur

DocumentReader gebruikt twee mixins om verantwoordelijkheden te splitsen:

ComponentRole
DocumentReaderHoofd DOCX-parser — leest XML onderdelen uit het OPC-pakket
LdmBuilderMixinConstrueert het Light Document Model vanuit geparseerde gegevens
ShapeParserMixinParseert teken- en vormelementen die in het document zijn ingebed

Alle drie werken intern samen — je werkt met het resultaat via de Document API.


Tekst extraheren

Gebruik de text eigenschap op een geladen document om platte tekst te extraheren zonder naar een bestand op te slaan:

import aspose.words_foss as aw

doc = aw.Document("contract.docx")
text = doc.text
print(text[:500])

Werken met alinea’s en opmaak

Toegang tot alinea-niveau eigenschappen via de 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}")

Elke Run bevat lettertype-eigenschappen (vet, cursief, grootte, kleur) die zijn geparseerd uit de DOCX XML.


Behandelen van vormen en afbeeldingen

De ShapeParserMixin extraheert tekenelementen tijdens het parseren. Vormen verschijnen in de LDM als ShapeNode objecten binnen de alinea-inhoud:

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}")

Tips en best practices

  • Gebruik Document("file.docx") voor standaardworkflows — het handelt de selectie van lezers, pakketvalidatie en LDM-constructie automatisch af.
  • Voor streamgebaseerde invoer (webuploads) geef je een bestand-achtig object door aan de Document-constructor.
  • Voor bestanden met tabellen kun je ze benaderen via doc.tables of doc.all_tables.
  • Voor batchverwerking kun je hetzelfde Python-proces hergebruiken om herhaald importoverhead te vermijden.

Veelvoorkomende problemen

ProbleemOorzaakOplossen
Bestand wordt niet geladen (uitzondering)Corrupt of onvolledig ZIP archiefControleer of het bestand een geldige .docx (ZIP-gebaseerd OPC-pakket) is
Ontbrekende afbeeldingen in uitvoerAfbeeldingsonderdelen niet ingebed in het pakketControleer of de DOCX ingebedde (niet gelinkte) afbeeldingen bevat
Ontbrekende inhoud in uitvoerVereiste XML onderdelen ontbreken in het pakketHet bestand kan ingekort zijn; exporteer opnieuw vanuit de bronapplicatie

FAQ

Wat is het Light Document Model (LDM)?

De LDM is de interne weergave die door alle lezers wordt gedeeld. Het abstraheert format-specifieke details (OPC XML, OLE2-binary) naar een gemeenschappelijke structuur van secties, alinea’s, runs, tabellen en vormen.

Kan DocumentReader DOCM (macro-enabled) bestanden verwerken?

Macro-enabled .docm bestanden gebruiken dezelfde OPC-structuur. De lezer kan de documentinhoud parsen, maar macro’s worden niet bewaard of uitgevoerd.

Hoe gaat de lezer om met grote documenten?

De lezer verwerkt de XML delen opeenvolgend. Het geheugenverbruik schaalt met de documentgrootte. Voor zeer grote documenten, overweeg om secties afzonderlijk te verwerken.


API Reference Samenvatting

Klasse / MethodeBeschrijving
DocumentReaderLeest DOCX-documenten en produceert geabstraheerde datastructuren
LdmBuilderMixinMixin die Light Document Model-constructiemethoden biedt
ShapeParserMixinMixin die methoden voor het ontleden van tekeningen/vormen biedt
DocumentStelt een Word-document voor (de LDM-root)
create_reader(path)Factory die de juiste reader retourneert voor een bestandsextensie

Zie ook

 Nederlands