Създаване на лесен модел за документ с DocumentReader

Създаване на лесен модел за документ с DocumentReader

Създаване на лесен модел за документ с DocumentReader

DocumentReader е входната точка за четене на файлове DOCX в Aspose.Words FOSS. Приема вход като път за файл, поток на В/В или сурови байтове и след това излага документ като light_document_model.Document (LDM) структуриран Python обект дърво, което е лесно за проверка и трансформация.


Предварителни условия

ИзискванеДетайли
Python3.9 or later
Пакетътaspose-words-foss (лицензиран от MIT)
Вход на данниA. Също така: .docx файл, поток или bytes
pip install aspose-words-foss

Зареждане от пътека за файлове

DocumentReader.load_file(filepath) чете DOCX файл по път. to_light_document() след това да получат представителство на LDM.

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

Зареждане от поток

DocumentReader.load_stream(stream) приема всеки файлов обект с read() Методът е полезен за данни, идващи от HTTP отговори, ZIP архиви или буфери в паметта.

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

Зареждане от байтове

DocumentReader.load_bytes(data) приема да bytes или с други: bytearray Използване на обект. това, когато съдържанието на DOCX вече е в паметта (напр. взето от база данни) и се използва за изтегляне на файловете; или програмирано).

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

Навигация по структурата на LDM

След като се обади. to_light_document(), връщане на Document Общността е изложена на общото. пълнодокументално дърво:

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)

Четене на пълен текст на документа

Document.text връща цялото съдържание на документа в обикновен текст, съвкупност на текста в параграфите във всички раздели:

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

Съвети и най-добри практики

  • Винаги звъни. load_file(), load_stream(), или load_bytes() преди да се обадиш. to_light_document() обаждане to_light_document() на разтоварен читател може да повдигне грешка или да върне празен документ.
  • Използване на: load_bytes() Когато контролирате жизнения цикъл на документа в паметта; това избягва отваряне на файлови ръкавици.
  • Използване на: doc.all_paragraphs за плоско итерация върху всички параграфи; използване на doc.sections когато трябва да работиш секция по секции.
  • DocumentReader инструменти за изпълнение на задачи LdmBuilderMixin, което означава, че to_light_document() е наличен като миксинг метод същият интерфейс се споделя с други читатели. Уроци в библиотеката.

Общи проблеми

ИзданиеПричина за товаРемонтиране
Пусто е. doc.sections след натоварванеФайлът не е валиден DOCXПроверете дали файлът се отваря в Word; проверете, че не е защитен с парола.
doc.all_paragraphs е празен.Документът няма текст в тялото (напр. само заглавия/подложки)Проверка. doc.header_paragraphs и в) doc.footer_paragraphs вместо това.
AttributeError на 1 януари to_light_document()Метод на товарене не е призован преди преобразуване.Обади се на някой от… load_file(), load_stream(), или load_bytes() Първо.

FAQ

Какво е LDM?

Моделът на лекия документ (light_document_model.Document) е абстрактна, Python-native обектно дърво, представляващо Word документ. Отделя логиката на документа от двоичния формат DOCX и е предназначен за лесна програмна манипулация.

Мога ли да модифицирам LDM и да го напиша обратно в DOCX?

Да, след като променим… doc Предмет, предай го на… LdmDocxWriter.write(doc, path) да се създаде актуализиран DOCX файл. Вижте Ръководство за LdmDocxWriter за подробности.

Какво прави това? LdmBuilderMixin Да добавяме?

LdmBuilderMixin предвижда: to_light_document() метод. DocumentReader наследява от него, така че винаги ще имате достъп до този метод чрез инстанцията на читателя.


Снимка на API референтна информация

Клас / методОписание на състоянието
DocumentReaderЧете DOCX вход и изгражда LDM представяне
DocumentReader.load_file(filepath)Зарежда DOCX файл по пътека
DocumentReader.load_stream(stream)Зареждане от поток, подобен на файл
DocumentReader.load_bytes(data)Загрузки от bytes обект
DocumentReader.to_light_document()Връща заредения документ като LDM Document
LdmBuilderMixinМиксина, която осигурява: to_light_document()
Document.sectionsСписък на раздели в документа
Document.all_paragraphsПлоско изброяване на всички параграфи
Document.textПълното съдържание на документа в обикновен текст
Document.page_countБрой страници
Document.headings(max_level)Списък на заглавия до max_level

Вижте също:

 Български