Робота з читачем DOC
Робота з читачем DOC
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 надає три методи введення:
| Method | Тип введення | Використання |
|---|---|---|
load_file(filepath) | Строка шляху файлу | Читання з диска |
load_stream(stream) | Файлоподібний об’єкт | Читання з завантаження або мережевого потоку |
load_bytes(data) | bytes | Читання з буфера в пам’яті |
Створення моделі Light Document
Після завантаження, подзвонить. 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 повертає відповідний читач на основі розширення файлу:
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 для тексту, параграфів та базового форматирування.
Загальні питання
| Issue | Cause | Виправлення |
|---|---|---|
load_file() піднімає FileNotFoundError | Неправильний шлях файлу | Перевірте, що шлях існує перед закликом. |
| Збіжений текст після завантаження | Файл не є дійсним двомірною формою OLE2 | Перевірте, що файл є справжнім. .doc формат, не перейменований .docx |
| Відсутність форматирування в виході | Деякі розширені функції DOC ще не підтримуються | Check limitations.md для функцій, які не підтримуються. |
FAQ
У чому різниця між DocFileReader і DocPfileReaterCore?
DocFileReaderCore обробляє двояковий аналіз формату OLE2 на низькому рівні. DocFileReader розширює його шляхом додавання до нього to_light_document() метод, що дає повний LDM; Document підходяще для перетворення.
Чи можу я завантажити файл DOC з потоку?
Так, використовуйте. DocFileReaderCore.load_stream(stream) Це корисно для веб-додатків, де файли завантажуються як потоки.
Чи читач DOC обробляє файли, захищені паролем?
Захищений паролем .doc файли не підтримуються. Читач підніме винятковий випадок, якщо файл зашифрований.
Реферат на API
| Клас / метод | Description |
|---|---|
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) | Фабрика, яка повертає правильний читач для розширення файлу |