Werken met DOC Reader

Werken met DOC Reader

Aspose.Words FOSS voor Python bevat een speciale lezer voor legacy Word 97-2003 .doc bestanden. De DocFileReader klasse parseert het OLE2 binaire formaat en produceert een Light Document Model (LDM) dat kan worden gemanipuleerd of geconverteerd naar andere formaten.


DOC-bestand laden

Gebruik DocFileReader om een .doc bestand van schijf te openen en het te converteren naar een Document:

import aspose.words_foss as aw

doc = aw.Document("report.doc")
print(f"Paragraphs: {len(doc.all_paragraphs)}")

De Document constructor delegeert naar create_reader(), die DocFileReader automatisch selecteert op basis van de .doc extensie.


Direct gebruik van DocFileReaderCore

Voor lagere-niveau controle, instantieer DocFileReaderCore en roep zijn load-methoden aan:

from aspose.words_foss.doc_reader.doc_file_reader_core import DocFileReaderCore

reader = DocFileReaderCore()
reader.load_file("legacy.doc")

DocFileReaderCore biedt drie invoermethoden:

MethodeInvoertypeGebruikssituatie
load_file(filepath)BestandspadstringLezen van schijf
load_stream(stream)Bestandsachtig objectLezen van upload of netwerkstream
load_bytes(data)bytesLezen vanuit in-memorybuffer

Bouwen van het Light Document Model

Na het laden, roep to_light_document() aan op DocFileReader om een LDM Document te produceren:

from aspose.words_foss.doc_reader.doc_file_reader import DocFileReader

reader = DocFileReader()
reader.load_file("input.doc")
ldm_doc = reader.to_light_document()

De LDM is de interne representatie die wordt gedeeld door alle lezers (DocFileReader, DocumentReader, TextFileReader). Zodra je een LDM-document hebt, kun je het opslaan in elk ondersteund uitvoerformaat.


Het DocumentFormatReader Protocol

Alle lezers implementeren het DocumentFormatReader protocol, dat de gemeenschappelijke interface definieert: load_file(), load_stream() en load_bytes(). De create_reader()-fabrieksfunctie geeft de juiste lezer terug op basis van de bestandsextensie:

from aspose.words_foss.reader_factory import create_reader

reader = create_reader("data.doc")  # returns DocFileReader
reader.load_file("data.doc")

Tips en best practices

  • Gebruik de high-level Document("file.doc") constructor voor de meeste workflows — hij behandelt de lezerselectie automatisch.
  • Gebruik DocFileReaderCore alleen wanneer je directe toegang tot de binaire parse-laag nodig hebt.
  • Voor bestanden die ontvangen worden als bytes (bijv. van HTTP-uploads), geef de voorkeur aan load_bytes() om het schrijven van tijdelijke bestanden te vermijden.
  • De DOC-lezer ondersteunt dezelfde round-trip-fideliteit als de DOCX-lezer voor tekst, alinea’s en basisopmaak.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
load_file() werpt FileNotFoundErrorOnjuist bestandspadControleer of het pad bestaat vóór het aanroepen
Vervormde tekst na het ladenBestand is geen geldige OLE2-binaryBevestig dat het bestand echt .doc-formaat is, niet een hernoemde .docx
Ontbrekende opmaak in de uitvoerSommige geavanceerde DOC-functies worden nog niet ondersteundControleer limitations.md op niet-ondersteunde functies

FAQ

Wat is het verschil tussen DocFileReader en DocFileReaderCore?

DocFileReaderCore behandelt de low-level binaire parsing van het OLE2-formaat. DocFileReader breidt dit uit door de to_light_document()-methode toe te voegen die een volledige LDM Document produceert die geschikt is voor conversie.

Kan ik een DOC-bestand laden vanuit een stream?

Ja. Gebruik DocFileReaderCore.load_stream(stream) of geef een bestand-achtig object door. Dit is handig voor webtoepassingen waarbij bestanden als streams worden geüpload.

Ondersteunt de DOC-lezer wachtwoordbeveiligde bestanden?

Wachtwoordbeveiligde .doc bestanden worden momenteel niet ondersteund. De lezer zal een uitzondering werpen als het bestand versleuteld is.


API Reference Samenvatting

Klasse / MethodeBeschrijving
DocFileReaderVolledige DOC-lezer met LDM-bouwmogelijkheid
DocFileReader.to_light_document()Converteert geparseerde DOC-gegevens naar een LDM-document
DocFileReaderCoreKernlezer voor Word 97-2003 (.doc) binaire bestanden
DocFileReaderCore.load_file(filepath)Laad een DOC-bestand vanaf een pad
DocFileReaderCore.load_stream(stream)Laad een DOC-bestand vanuit een stream
DocFileReaderCore.load_bytes(data)Laad een DOC-bestand vanuit een bytes-buffer
DocumentFormatReaderProtocolinterface voor alle documentlezers
create_reader(path)Factory die de juiste lezer retourneert voor een bestandsextensie

Zie ook

 Nederlands