Работа с 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) | Фабрика, которая возвращает правильный читатель для расширения файла. |