Работа с DOC Reader

Работа с DOC Reader

Aspose.Words FOSS for Python includes a dedicated reader for legacy Word 97-2003 .doc Файлы. DocFileReader класс анализирует двоичный формат OLE2 и создает модель легкого документа (LDM), которая может быть изменена или преобразована в другие форматы.


Загрузка файла DOC

Использование: DocFileReader открыть .doc файл с диска и преобразовать его в Document:

import aspose.words_foss as aw

doc = aw.Document("report.doc")
print(f"Paragraphs: {len(doc.all_paragraphs)}")

В связи с этим Document Делегаты конструктора на: create_reader(), который выбирает: DocFileReader автоматически на основе .doc продление.


Использование DocFileReaderCore напрямую

Для управления нижнего уровня, инстанциализировать: DocFileReaderCore и вызвать его методы загрузки:

from aspose.words_foss.doc_reader.doc_file_reader_core import DocFileReaderCore

reader = DocFileReaderCore()
reader.load_file("legacy.doc")

DocFileReaderCore представляет три метода ввода:

МетодТип вводаПрименение
load_file(filepath)Строка пути файлаЧитать с диска
load_stream(stream)Файлоподобный объектЧитать из загрузки или сетевого потока
load_bytes(data)bytesЧитать из буфера в памяти

Создание модели легкого документа

После загрузки, звоните. to_light_document() в день: DocFileReader для получения LDM. Document:

from aspose.words_foss.doc_reader.doc_file_reader import DocFileReader

reader = DocFileReader()
reader.load_file("input.doc")
ldm_doc = reader.to_light_document()

LDM - это внутреннее представление, которое разделяют все читатели (DocFileReader, DocumentReader, TextFileReader) После того, как у вас есть LDM-документ, вы можете сохранить его в любом поддерживаемом формате выходного файла.


Протокол DocumentFormatReader (Протоколы для чтения формата документа)

Все читатели внедряют DocumentFormatReader протокол, определяющий общий интерфейс: load_file(), load_stream(), и load_bytes().- Да , это так . create_reader() factory function возвращает соответствующий читатель на основе расширения файла:

from aspose.words_foss.reader_factory import create_reader

reader = create_reader("data.doc")  # returns DocFileReader
reader.load_file("data.doc")

Советы и лучшие практики

  • Используйте высокий уровень. Document("file.doc") Конструктор для большинства рабочих процессов он автоматически обрабатывает выбор читателя.
  • Использование: DocFileReaderCore только когда вам нужен прямой доступ к бинарному слою анализа.
  • Для файлов, полученных как: bytes (например, из загрузок HTTP), предпочитают load_bytes() чтобы избежать записи временных файлов.
  • Читатель DOC поддерживает ту же верность для обратного пути, что и читатель DoCX для текста, абзацев и базового форматирования.

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

ВыпускПричина .Устранить
load_file() повышает FileNotFoundErrorНеправильный путь файлаДозвонить , чтобы проверить существование пути .
Смешанный текст после загрузкиФайл не является действительным двоичным файлом OLE2 .Подтвердить , что файл подлинный . .doc формат, не переименованный в .docx
Недостаточное форматирование в выходеНекоторые продвинутые функции DOC еще не поддерживаютсяПроверка . limitations.md для не поддерживаемых функций

FAQ

В чем разница между DocFileReader и DocPfileReaterCore?

DocFileReaderCore обрабатывает бинарный анализ формата OLE2 низкого уровня. DocFileReader расширяет его, добавив в него: to_light_document() метод, который дает полный LDM. Document пригодное для преобразования.

Могу ли я загрузить файл DOC из потока?

Да, используйте. DocFileReaderCore.load_stream(stream) Это полезно для веб-приложений, где файлы загружаются в виде потоков.

Читатель DOC обрабатывает защищенные паролем файлы?

Защищенный паролем .doc файлы не поддерживаются. Читатель поднимет исключение, если файл зашифрован.


Справочное резюме API

Класс / методОписание:
DocFileReaderПолный читатель DOC с возможностью создания LDM.
DocFileReader.to_light_document()Преобразует анализируемые данные DOC в LDM-документ
DocFileReaderCoreЧитатель коров для бинарных файлов Word 97-2003 (.doc)
DocFileReaderCore.load_file(filepath)Загрузить файл DOC с пути .
DocFileReaderCore.load_stream(stream)Загрузить файл DOC из потока
DocFileReaderCore.load_bytes(data)Загрузить файл DOC из буфера байтов
DocumentFormatReaderПротокольный интерфейс для всех читателей документов
create_reader(path)Фабрика, которая возвращает правильный читатель для расширения файла.
 Русский