Izgradnja modela laganog dokumenta s DocumentReaderom
Izgradnja modela laganog dokumenta s DocumentReaderom
DocumentReader je ulazna točka za čitanje DOCX datoteka u programu Aspose.Words FOSS. Prihvaća ulaz kao putanje datoteke, protok I/O ili sirove bajtove i zatim izloži dokument kao light_document_model.Document (LDM) strukturirani Python objekt drvo koje je lako pregledati i transformirati.
U skladu s člankom 21. stavkom 1.
| Odluka o odobrenju | Detaljnije informacije |
|---|---|
| Python | 3.9 or later |
| Sljedeći članak: | aspose-words-foss (MIT-licenciran) |
| Uvodni broj: | A. - U redu je. .docx datoteke, strimova ili bytes |
pip install aspose-words-fossUpisivanje s puta datoteke
DocumentReader.load_file(filepath) Čita DOCX datoteku po stazi. to_light_document() Nakon toga, da bi se stekla zastupljenost LDM-a.
from aspose.words_foss import DocumentReader
reader = DocumentReader()
reader.load_file("data/report.docx")
doc = reader.to_light_document()
print("Page count:", doc.page_count)
print("Sections:", len(doc.sections))Opterećenje s toka
DocumentReader.load_stream(stream) prihvaća bilo datoteku sličan objekat s read() Metod je koristan za podatke koji dolaze iz HTTP odgovora, ZIP arhiva ili u memoriji.
from aspose.words_foss import DocumentReader
reader = DocumentReader()
with open("data/report.docx", "rb") as fh:
reader.load_stream(fh)
doc = reader.to_light_document()
print("Paragraphs:", len(doc.all_paragraphs))Upotrebljavanje iz Bajtova
DocumentReader.load_bytes(data) prihvaćaju: bytes ili: bytearray -Potreba. To se događa kada je DOCX sadržaj već u memoriji (npr. preuzet iz baze podataka). ili programski konstruirani).
from aspose.words_foss import DocumentReader
with open("data/report.docx", "rb") as fh:
data = fh.read()
reader = DocumentReader()
reader.load_bytes(data)
doc = reader.to_light_document()
print("Text preview:", doc.text[:200])Navigacija u strukturi LDM-a
Nakon što sam nazvao. to_light_document(), vraćena Document Objekat izloži Popis podataka:
from aspose.words_foss import DocumentReader
reader = DocumentReader()
reader.load_file("data/report.docx")
doc = reader.to_light_document()
# Sections
for section in doc.sections:
print("Section paragraphs:", len(section.paragraphs))
# All paragraphs (flat list across all sections)
for para in doc.all_paragraphs:
if para.text.strip():
print(" -", para.text[:80])
# Headings
for heading in doc.headings(max_level=2):
print("H:", heading.text)Čitanje punog teksta dokumenta
Document.text U ovom slučaju, u skladu s člankom 13. stavkom 1. točkom (a) i podstavkom 2. točkama 3. i 4. ovog članka., U ovom slučaju, u skladu s člankom 72. stavkom 1. točka (a) Uredbe (EU) br. 1303/2013:
reader = DocumentReader()
reader.load_file("data/report.docx")
doc = reader.to_light_document()
print(doc.text[:500])Savjeti i najbolje prakse
- Uvijek nazovi.
load_file(),load_stream(),iliload_bytes()prije nego što pozoveš.to_light_document()pozivanjeto_light_document()na neopterećenom čitatelju može izazvati pogrešku ili vratiti prazan dokument. - Upotreba:
load_bytes()kada kontrolirate životni ciklus dokumenta u memoriji; to izbjegava Otvaranje rukovode za datoteke. - Upotreba:
doc.all_paragraphsza ravnu iteraciju na svim stavcima; upotrebljavanjedoc.sectionsKada treba raditi dio po deo. DocumentReaderuređaji za rušenjeLdmBuilderMixin, što znači da je to bilo…to_light_document()dostupna je kao metoda mixin isti sučelja se dijeli s drugim čitateljima Uči u knjižnici.
Zajednički problemi
| Izdavanje | Uzrok | Popraviti |
|---|---|---|
Prazno. doc.sections nakon opterećenja | Datoteka nije valjan DOCX | Provjerite da li je datoteka otvorena u Wordu; provjeriti nije zaštitljena lozinkom |
doc.all_paragraphs je prazan. | U dokumentu nema teksta u tijelu (npr. samo zaglavlje/podnožje) | Čekaj. doc.header_paragraphs i u članku 1. doc.footer_paragraphs umjesto toga. |
AttributeError na: to_light_document() | Metoda opterećenja nije pozvana prije pretvaranja | Nazovi jednog od… load_file(), load_stream(),ili load_bytes() Prvo. |
FAQ
Što je LDM?
U tom smislu, Komisija je u skladu s člankom 73. stavkom 1. točkom (b) Uredbe.light_document_model.Document) je apstraktna, Python-native objektno stablo koje predstavlja Word dokument. Odvaja logiku dokumenta Iz binarnog formata DOCX i dizajniran je za jednostavnu programsku manipulaciju.
Mogu li modificirati LDM i napisati ga natrag na DOCX?
Da, nakon što je modifikovao… doc Predmet, proslijedi ga. LdmDocxWriter.write(doc, path) Da biste dobili ažurirani DOCX datoteku. Vidjeti na LdmDocxPravitelj vodič Za detalje.
Što to znači? LdmBuilderMixin -Da, dodao sam.?
LdmBuilderMixin utvrđuje: to_light_document() metoda. DocumentReader nasljeđuje od njega tako da uvijek pristupite ovoj metodi preko čitatelja.
Svrha referentnog API-a
| Klasa / metoda | Opisivanje |
|---|---|
DocumentReader | Čita ulaz DOCX i gradi LDM predstavljanje |
DocumentReader.load_file(filepath) | Pristup DOCX datoteke prema stazi |
DocumentReader.load_stream(stream) | Opterećenja iz struje poput datoteke |
DocumentReader.load_bytes(data) | Tovar iz bytes predmet |
DocumentReader.to_light_document() | Vrati učitavan dokument kao LDM Document |
LdmBuilderMixin | Mixin koji pruža: to_light_document() |
Document.sections | Popis odjeljaka u dokumentu |
Document.all_paragraphs | Popis svih stavaka |
Document.text | U skladu s člankom 15. stavkom 1. točkom (a) Uredbe (EU) br. 1308/2013 |
Document.page_count | Broj stranica |
Document.headings(max_level) | Popis naslovnih stavaka do: max_level |