Lucrarea cu DOCX Reader
Lucrarea cu DOCX Reader
În ceea ce priveşte DocumentReader clasa se citește Office Open XML (.docxÎn cazul în care un document este format din două fișiere, acesta poate produce o structură de date abstractă modelul luminos al documentului (LDM).
Citirea unui fișier DOCX
Cea mai simplă abordare este să folosim Document constructor, care selectează automat: DocumentReader pentru: .docx fişiere:
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)Arhitectura documentului de citire
DocumentReader folosește două mixuri pentru a împărți responsabilitățile:
| Componenta | Rolul său |
|---|---|
DocumentReader | Parserul DOCX principal citește părți XML din pachetul OPC |
LdmBuilderMixin | Construiește modelul Light Document din date analizate |
ShapeParserMixin | Parsează elementele de desen și forme încorporate în document. |
Toate cele trei lucrează împreună intern interacţionaţi cu rezultatul prin intermediul Document API.
Extractarea textului
Utilizare: get_text() pe un document încărcat pentru a extrage text simplu fără salvare într-un fișier:
import aspose.words_foss as aw
doc = aw.Document("contract.docx")
text = doc.get_text()
print(text[:500])Lucrarea cu paragrafe și formatare
Accesarea proprietăților la nivel de paragraf prin 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}")Fiecare Run poartă proprietăți de font (de mare, italic, dimensiune, culoare) care au fost analizate din DOCX XML.
Manifestarea formelor şi a imaginilor
În ceea ce priveşte ShapeParserMixin extrage elemente de desenare în timpul parsing. forme apar în LDM ca ShapeNode Obiecte în conținutul paragrafului:
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}")Sfaturi şi cele mai bune practici
- Utilizare:
Document("file.docx")pentru fluxurile de lucru standard se ocupă automat de selecția cititorului, validarea pachetelor și construirea LDM. - Pentru intrarea pe bază de flux (upload-uri web), trece un obiect similar fișierului la
DocumentConstructor. - Ce?. - Pentru fișiere cu tabele, accesați-le prin intermediul
doc.tablessau de:doc.all_tables. - Pentru procesarea în loturi, reutilizați același proces Python pentru a evita costurile suplimentare de import repetate.
Probleme comune
| Numărul de date | Cauza | Fixare |
|---|---|---|
| Fișier neîncărcat (excepție) | Arhiva ZIP coruptă sau incompletă | Verificați fișierul este un valid .docx (Pacetul OPC bazat pe ZIP) |
| Imagini lipsă în ieșire | Piese de imagine neincorporate în ambalaj | Verificați dacă DOCX-ul conține imagini încorporate (nu legate) |
| Conținut lipsă în producție | Parți XML necesare care nu sunt incluse în pachet | Fișierul poate fi truncat; reexport din aplicația sursă |
FAQ
Ce este modelul documentului luminos (LDM)?
LDM este reprezentarea internă împărțită între toți cititorii. Abstractează detalii specifice formatului (OPC XML, binar OLE2) într-o structură comună de secțiuni, paragrafe, runuri, tabele și forme.
Poate DocumentReader să gestioneze fișiere DOCM (actionate macro)?
Macro-actibilitate .docm Fişierele folosesc aceeaşi structură OPC. Cititorul poate analiza conţinutul documentului, dar macrourile nu sunt păstrate sau executate.
Cum se descurcă cititorul cu documentele mari?
Cititorul procesează secțiunile XML în mod secvențial. Utilizarea memoriei se măsoară cu dimensiunea documentului. Pentru documente foarte mari, considerați procesarea secțiilor individual.
Rezultatele de la data aplicării.
| Clasa / metoda | Descriere: |
|---|---|
DocumentReader | Citește documentele DOCX și produce structuri abstracte de date. |
LdmBuilderMixin | Metodele de construcție ale modelului document luminos care furnizează amestecul |
ShapeParserMixin | Amestec care oferă metode de desenare/parsare a formei |
Document | Reprezintă un document Word (rădăcina LDM) |
create_reader(path) | Factoriile care returnează cititorul corect pentru o extensie de fișier |