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à:
| Componente | Rolo di lavoro |
|---|---|
DocumentReader | Parser DOCX principale legge parti XML dal pacchetto OPC |
LdmBuilderMixin | Costruisce il modello di documento leggero da dati analizzati |
ShapeParserMixin | Parsi 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.tableso 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 pubblicazione | Causa di morte | Rettifica |
|---|---|---|
| Non caricamento del file (eccezione) | Archivio ZIP corrotto o incompleto | Verifica che il file sia valido .docx (pacchetto OPC basato su zip) |
| Immagini mancanti in uscita | Parti di immagine non inserite nell’imballaggio | Verificare che il DOCX contenga immagini incorporate (non collegate) |
| Contenuto mancante nell’output | Parti XML richieste assenti dal pacchetto | Il 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 / metodo | Descrizione |
|---|---|
DocumentReader | Legge i documenti DOCX e produce strutture di dati astratte. |
LdmBuilderMixin | Metodi di costruzione del modello Light Document mixin |
ShapeParserMixin | Miscela che fornisce metodi di disegno/analisi delle forme |
Document | Rappresenta un documento Word (la radice LDM) |
create_reader(path) | Fabbrica che restituisce il lettore corretto per un’estensione di file |