Lavorare con DOCX Reader

Lavorare con DOCX Reader

Il Consiglio ha adottato: DocumentReader classe Office Open XML (.docx) e produce una struttura di dati astratta il Light Document Model (LDM). gestisce paragrafi, tabelle, forme, immagini e formattazione, rendendo disponibile il contenuto per la manipolazione o conversione.


Leggere un file DOCX

L’approccio più semplice è quello di utilizzare il sistema di controllo del valore. Document costruttore, che seleziona automaticamente: DocumentReader per il .docx file:

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)

Architettura del documentReader

DocumentReader utilizza due mixins per dividere le responsabilità:

ComponenteRolo di lavoro
DocumentReaderParser DOCX principale legge parti XML dal pacchetto OPC
LdmBuilderMixinCostruisce il modello di documento leggero da dati analizzati
ShapeParserMixinParsi elementi di disegno e forma incorporati nel documento

Tutti e tre lavorano insieme internamente interagisci con il risultato attraverso la rete di ricerca. Document API.


Estrazione di testo

Utilizzo: get_text() su un documento caricato per estrarre testo semplice senza salvare in file:

import aspose.words_foss as aw

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

Lavorare con i paragrafi e la formattazione

Accesso alle proprietà a livello di paragrafo tramite il 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}")

Ogni Run porta proprietà di carattere (in grassetto, in corsivo, dimensione, colore) che sono state analizzate dall’XML DOCX.


Come gestire le forme e le immagini

Il Consiglio ha adottato: ShapeParserMixin Le forme appaiono nel LDM come: ShapeNode oggetti contenuti nei paragrafi:

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

Suggerimenti e migliori pratiche

  • Utilizzo: Document("file.docx") per i flussi di lavoro standard gestisce automaticamente la selezione del lettore, la convalida dei pacchetti e la costruzione dell’LDM.
  • Per l’input basato su stream (uploads web), passare un oggetto file-like al Document - Costruitore.
  • Per i file con tabelle, accedere tramite doc.tables o di più. doc.all_tables.
  • Per l’elaborazione a batch, riutilizzare lo stesso processo Python per evitare costi aggiuntivi di importazione ripetuti.

Problemi comuni

Numero di pubblicazioneCausa di morteRettifica
Non caricamento del file (eccezione)Archivio ZIP corrotto o incompletoVerifica che il file sia valido .docx (pacchetto OPC basato su zip)
Immagini mancanti in uscitaParti di immagine non inserite nell’imballaggioVerificare che il DOCX contenga immagini incorporate (non collegate)
Contenuto mancante nell’outputParti XML richieste assenti dal pacchettoIl file può essere troncato; re-export dall’applicazione sorgente.

FAQ

Che cos’è il modello di documento leggero (LDM)?

LDM è la rappresentazione interna condivisa tra tutti i lettori. Esso astrae dettagli specifici del formato (OPC XML, binario OLE2) in una struttura comune di sezioni, paragrafi, run, tabelle e forme.

DocumentReader può gestire file DOCM (con macro abilitati)?

Macro abilitato .docm I file utilizzano la stessa struttura OPC. Il lettore può analizzare il contenuto del documento, ma le macro non vengono conservate o eseguite.

Come gestisce il lettore i documenti di grandi dimensioni?

Il lettore elabora le parti XML in sequenza. L’utilizzo della memoria si scala con la dimensione del documento. Per documenti molto grandi, considerare l’elaborazione delle sezioni individualmente.


Riassunto di riferimento API

Classe / metodoDescrizione
DocumentReaderLegge i documenti DOCX e produce strutture di dati astratte.
LdmBuilderMixinMetodi di costruzione del modello Light Document mixin
ShapeParserMixinMiscela che fornisce metodi di disegno/analisi delle forme
DocumentRappresenta un documento Word (la radice LDM)
create_reader(path)Fabbrica che restituisce il lettore corretto per un’estensione di file
 Italiano