Mit DOC Reader arbeiten
Mit DOC Reader arbeiten
Die DocumentReader Die Formate des Open XML (.docx) Dateien und produziert eine abstrakte Datenstruktur – das Light Document Model (LDM). Es verarbeitet Paragrafen, Tabellen, Formen, Bilder und Formatierung, die Inhalte zur Verfügung stellen für Manipulation oder Konvertierung.
Lesen Sie ein DOCX-Datei
Der einfachste Ansatz ist die Verwendung der Document Konstruktor, der automatisch wählt DocumentReader Für .docx Dateien zu:
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)Architektur des DocumentReader
DocumentReader Sie verwenden zwei Mischungen, um Verantwortung zu teilen:
| Komponenten | Rolle |
|---|---|
DocumentReader | Hauptdokx-Parser – Lesen von XML-Delemente aus dem OPC-Paket |
LdmBuilderMixin | Erstellt das Lichtdokumentmodell aus parsed Daten |
ShapeParserMixin | Parse Zeichnen und Gestalten von Elementen, die in das Dokument eingebettet sind |
Alle drei arbeiten intern zusammen – Sie interagieren mit dem Ergebnis durch die Document API.
Text extrahieren
Gebrauch get_text() auf einem hochgeladenen Dokument, um reiches Text ohne Speicherung in eine Datei zu extrahieren:
import aspose.words_foss as aw
doc = aw.Document("contract.docx")
text = doc.get_text()
print(text[:500])Arbeiten mit Paragrafen und Formatering
Zugang zu Paragraph-Level-Eigenschaften durch die 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}")Jeder Run trägt die Schrift Eigenschaften (Bold, italic, Größe, Farbe), die aus dem DOCX XML vertrieben wurden.
Verarbeitung von Formen und Bilder
Die ShapeParserMixin extrakten Zeichnung Elemente während der Parsing. Formen erscheinen in der LDM als ShapeNode Gegenstände im Sinne des Absatzes:
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}")Tipps und beste Praktiken
- Gebrauch
Document("file.docx")für Standard-Workflows – es verwalt die Leserwahl, die Packungs validierung und die LDM-Konstruktion automatisch. - Für Stream-basierte Einträge (Web-Upload), übertragen Sie ein Datei-like-Objekt auf
DocumentDer Konstrukteur. - Für Dateien mit Tabellen, können Sie sie über
doc.tablesoderdoc.all_tables. - Für die Batch-Verarbeitung verwenden Sie den gleichen Python-Prozess erneut, um wiederholte Import-Überhöhungen zu vermeiden.
Gemeinsame Probleme
| Thema | Ursache | Fix |
|---|---|---|
| Datei nicht laden (Ausnahme) | Korrupte oder unvollständige ZIP-Archive | Überprüfen Sie, ob das Datei gültig ist .docx (ZIP-basierte OPC-Paket |
| Vermisst Bilder in der Produktion | Bildteile, die nicht in das Paket eingebettet sind | Überprüfen Sie, ob DOCX eingebaut (nicht verbunden) Bilder enthält |
| Fehlende Inhalte in der Produktion | XML-Dienstleistungen, die aus dem Paket fehlen | Die Datei kann verblüffert werden; neu aus der Quellanwendung exportiert |
FAQ
Was ist das Lichtdokumentmodell (LDM)?
Die LDM ist die interne Vertretung, die in allen Lesern geteilt wird. Es abstraktiert Format-spezifische Details (OPC XML, OLE2 binär) in eine gemeinsame Struktur von Abschnitte, Absätze, Runden, Tabellen und Formen.
Kann DocumentReader DOCM (Macro-fähige) Dateien verwalten?
Macro-fähig .docm Die Dateien verwenden die gleiche OPC-Struktur. Der Leser kann die Dokumenteinhalte verfassen, aber die Makro werden nicht beibehalten oder ausgeführt.
Wie verarbeitet der Leser große Dokumente?
Der Leser verarbeitet die XML-Parteien sequentiell. Speicher-Nutzungsstufen mit Dokumentgröße. Für sehr große Dokumente, berücksichtigen Sie die Verarbeitungssektionen individuell.
API Referenzabschnitt
| Klasse / Methode | Beschreibung |
|---|---|
DocumentReader | Lesen DOCX-Dokumente und produzieren abstrakte Datenstrukturen |
LdmBuilderMixin | Mixin bietet Lichtdokument Modelle Konstruktionsmethoden |
ShapeParserMixin | Mixin bietet Zeichnung/Form Parsing Methoden |
Document | Vertretung eines Word-Dokuments (die LDM-Röhr) |
create_reader(path) | Fabrik, die den richtigen Leser für eine Dateierweiterung zurückgibt |