Könnyű dokumentummodell építése a DocumentReader-rel

Könnyű dokumentummodell építése a DocumentReader-rel

Könnyű dokumentummodell építése a DocumentReader segítségével

DocumentReader a belépési pont a DOCX fájlok olvasásához a Aspose.Words FOSS-ban. Elfogad bemenetet fájlútként, I/O adatfolyamként vagy nyers bájtokként, majd a dokumentumot light_document_model.Document (LDM) formájában teszi elérhetővé – egy strukturált Python objektumfát, amely könnyen vizsgálható és átalakítható.


Előfeltételek

KövetelményRészlet
Python3.9 vagy újabb
Packageaspose-words-foss (MIT-licencelt)
InputEgy .docx fájl, adatfolyam vagy bytes
pip install aspose-words-foss

Betöltés fájlútról

DocumentReader.load_file(filepath) egy DOCX fájlt olvas be útvonal alapján. Hívja meg a to_light_document() ezután a LDM ábrázolás megszerzéséhez.

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

Betöltés adatfolyamból

DocumentReader.load_stream(stream) elfogad bármilyen fájl-szerű objektumot egy read() metódussal. Ez hasznos olyan adatoknál, amelyek HTTP válaszokból, ZIP archívumokból vagy memória bufferből származnak.

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

Betöltés bájtokból

DocumentReader.load_bytes(data) elfogad egy bytes vagy bytearray objektumot. Használd ezt, amikor a DOCX tartalom már a memóriában van (pl. adatbázisból lekérve vagy programozottan előállítva).

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])

Navigálás az LDM struktúrában

A to_light_document() meghívása után a visszaadott Document objektum a teljes dokumentumfát teszi elérhetővé:

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)

A teljes dokumentum szövegének olvasása

Document.text visszaadja a dokumentum teljes egyszerű szöveges tartalmát, összefűzve az összes bekezdés szövegét az összes szakaszban:

reader = DocumentReader()
reader.load_file("data/report.docx")
doc = reader.to_light_document()
print(doc.text[:500])

Tippek és bevált gyakorlatok

  • Mindig hívd meg a(z) load_file(), load_stream() vagy load_bytes() függvényt a(z) to_light_document() meghívása előtt — a(z) to_light_document() meghívása egy betöltetlen olvasón hibát eredményezhet vagy egy üres dokumentumot adhat vissza.
  • Használd a(z) load_bytes() függvényt, ha a memóriában irányítod a dokumentum életciklusát; ezzel elkerülhető a fájlkezelők megnyitása.
  • Használd a(z) doc.all_paragraphs függvényt az összes bekezdés sík iterálásához; használd a(z) doc.sections függvényt, ha szekciónként szeretnél dolgozni.
  • DocumentReader megvalósítja a(z) LdmBuilderMixin interfészt, ami azt jelenti, hogy a(z) to_light_document() mixin metódusként elérhető — ugyanaz az interfész megosztott a könyvtár más olvasó osztályaival.

Gyakori problémák

ProblémaOkaJavítás
Üres doc.sections a betöltés utánA fájl nem érvényes DOCXEllenőrizze, hogy a fájl megnyílik-e Wordben; győződjön meg róla, hogy nincs jelszóval védve
doc.all_paragraphs üresA dokumentumnak nincs törzsszövege (pl. csak fejléc/lábléc)Ellenőrizze inkább doc.header_paragraphs és doc.footer_paragraphs
AttributeError a to_light_document()A betöltési metódus nem lett meghívva a konverzió előttHívjon meg először a load_file(), load_stream() vagy load_bytes() közül egyet

FAQ

Mi az LDM?

A könnyű dokumentummodell (light_document_model.Document) egy absztrahált, Python-natív objektumfa, amely egy Word dokumentumot ábrázol. Szétválasztja a dokumentum logikáját a DOCX bináris formátumtól, és könnyű programozott manipulációra tervezték.

Módosíthatom az LDM-et, és visszaírhatom DOCX-be?

Igen. A módosítás után a doc objektumot, adja át neki LdmDocxWriter.write(doc, path) az frissített DOCX fájl előállításához. Lásd a LdmDocxWriter útmutató a részletekért.

Mit ad hozzá a LdmBuilderMixin?

LdmBuilderMixin biztosítja a to_light_document() metódust. A DocumentReader örökli azt, így mindig a olvasó példányon keresztül érheted el ezt a metódust.


API Reference összefoglaló

Osztály / MetódusLeírás
DocumentReaderBeolvassa a DOCX bemenetet, és felépíti az LDM reprezentációt
DocumentReader.load_file(filepath)Betölti a DOCX fájlt útvonal alapján
DocumentReader.load_stream(stream)Betölti egy fájlhoz hasonló adatfolyamból
DocumentReader.load_bytes(data)Betölti egy bytes objektumból
DocumentReader.to_light_document()Visszaadja a betöltött dokumentumot LDM-ként Document
LdmBuilderMixinMixin, amely to_light_document() biztosít
Document.sectionsA dokumentumban lévő szakaszok listája
Document.all_paragraphsMinden bekezdés lapos listája
Document.textA dokumentum teljes egyszerű szöveges tartalma
Document.page_countOldalak száma
Document.headings(max_level)Fejléc bekezdések listája max_level -ig

Lásd még:

 Magyar