Mit DOC Reader arbeiten
Mit DOC Reader arbeiten
Aspose.Words FOSS for Python includes a dedicated reader for legacy Word 97-2003 .doc Datei - die DocFileReader Die Klasse vergleicht das OLE2 binäre Format und produziert ein Light Document Model (LDM), das manipuliert oder in andere Formate konvertiert werden kann.
Laden Sie ein DOC-Datei
Gebrauch DocFileReader zu öffnen a .doc Datei aus dem Disk und konvertieren sie in eine Document:
import aspose.words_foss as aw
doc = aw.Document("report.doc")
print(f"Paragraphs: {len(doc.all_paragraphs)}")Die Document Konstruktor Delegate für create_reader(), die wählt DocFileReader Automatisch basiert auf der .doc Ausdehnung .
Verwenden Sie DocFileReaderCore direkt
Für die niedrigere Kontrolle, Instantiate DocFileReaderCore und nennen Sie seine Lademethoden:
from aspose.words_foss.doc_reader.doc_file_reader_core import DocFileReaderCore
reader = DocFileReaderCore()
reader.load_file("legacy.doc")DocFileReaderCore Es gibt drei Eintrittsmethoden:
| Methode | Eintrittstyp | Verwendung von Fall |
|---|---|---|
load_file(filepath) | Datei Path String | Lesen Sie von Disk |
load_stream(stream) | Datei-Stimmung Objekte | Lesen Sie von upload oder network stream |
load_bytes(data) | bytes | Lesen Sie von in-memory buffer |
Erstellen des Lichtdokumentmodells
Nach dem Laden, rufen Sie to_light_document() auf DocFileReader um eine LDM zu produzieren Document:
from aspose.words_foss.doc_reader.doc_file_reader import DocFileReader
reader = DocFileReader()
reader.load_file("input.doc")
ldm_doc = reader.to_light_document()Die LDM ist die interne Vertretung, die in allen Lesern geteilt wird (DocFileReader, DocumentReader, TextFileReaderSobald Sie ein LDM-Dokument haben, können Sie es in jedem unterstützten Ausgangsformat speichern.
Das DokumentFormatReader-Protokoll
Alle Leser setzen die DocumentFormatReader Protokoll, das die gemeinsame Schnittstelle definiert: load_file(), load_stream(),und load_bytes(). die create_reader() Die Fabrikfunktion kehrt den entsprechenden Leser auf der Grundlage der Dateierweiterung zurück:
from aspose.words_foss.reader_factory import create_reader
reader = create_reader("data.doc") # returns DocFileReader
reader.load_file("data.doc")Tipps und beste Praktiken
- Verwenden Sie die hohe Ebene
Document("file.doc")Konstruktor für die meisten Arbeitsflüsse – es verwalt die Leserwahl automatisch. - Gebrauch
DocFileReaderCoreNur wenn Sie einen direkten Zugang zum binären Parsing-Schicht benötigen. - Für die Dateien, die als
bytes(z. B. aus HTTP-Upload), bevorzugtload_bytes()Vermeiden Sie die Schreibzeit von temporären Dateien. - Der DOC-Reader unterstützt die gleiche Runde-Trip-Glaubwürdigkeit wie der DOCX-Reader für Text, Absätze und Grundformatering.
Gemeinsame Probleme
| Thema | Ursache | Fix |
|---|---|---|
load_file() Aufstieg FileNotFoundError | Unregelmäßige Datei-Path | Überprüfen Sie den Weg, der vorhanden ist, bevor Sie rufen |
| Text nach dem Laden | Datei ist nicht eine gültige OLE2 binäre | Bestätigen Sie, dass die Datei wahr ist .doc Form, nicht umbenannt .docx |
| Fehlende Formate in der Produktion | Einige fortschrittliche DOC-Funktionen sind noch nicht unterstützt | Check limitations.md für ununterstützte Funktionen |
FAQ
Was ist der Unterschied zwischen DocFileReader und DocFileReaderCore?
DocFileReaderCore Handeln Sie die niedrigem Niveau binäre Parsing des OLE2 Formats. DocFileReader Erweitern Sie es durch die Zusatzung der to_light_document() Methode, die eine vollständige LDM produziert Document geeignet für Konvertierung.
Kann ich eine DOC-Datei aus einem Stream laden?
Ja, benutzen Sie DocFileReaderCore.load_stream(stream) oder ein Datei-like Objekt passieren. Dies ist nützlich für Web-Anwendungen, in denen Dateien als Streams hochgeladen werden.
Handelt der DOC-Reader Passwortschutzte Dateien?
Passwort geschützt .doc Dateien werden derzeit nicht unterstützt. Der Leser wird eine Ausnahme erheben, wenn die Datei verschlüsselt ist.
API Referenzabschnitt
| Klasse / Methode | Beschreibung |
|---|---|
DocFileReader | Voll DOC-Leser mit LDM-Konstruktionskapazität |
DocFileReader.to_light_document() | Konvertiert parsed DOC-Daten in ein LDM-Dokument |
DocFileReaderCore | Core Reader für Word 97-2003 (.doc) binäre Dateien |
DocFileReaderCore.load_file(filepath) | Laden Sie eine DOC-Datei aus einem Weg |
DocFileReaderCore.load_stream(stream) | Laden Sie eine DOC-Datei aus einem Stream |
DocFileReaderCore.load_bytes(data) | Laden Sie eine DOC-Datei aus einem Buffer-Bytes herunter |
DocumentFormatReader | Protokollinterface für alle Dokumentleser |
create_reader(path) | Fabrik, die den richtigen Leser für eine Dateierweiterung zurückgibt |