Работа с DOC Reader

Работа с DOC Reader

Aspose.Words FOSS за Python включва специален читател за наследени файлове Word 97-2003 .doc . Класата ̋DocFileReader∂ анализира двоичния формат на OLE2 и произвежда Лайт Документ Модел (LDM), който може да бъде манипулиран или конвертиран в други формати.


Зареждане на файл DOC

Използвайте DocFileReader за отваряне на файл ̋.doc∂ от диска и преобразуването му в ̆Dokument™:

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 предоставя три въвеждащи метода:

MethodInput typeUse case
load_file(filepath)File path stringRead from disk
load_stream(stream)File-like objectRead from upload or network stream
load_bytes(data)bytesRead from in-memory buffer

Изграждане на модел за леки документи

След зареждане, се обажда `to_light_document (() ̋ на ̆DocFileReader∂ за създаване на LDM∂Dokument∂:

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, Документ Редер , ゚TextFireReeder`).След като имате документ на LMD можете да го запазите във всеки поддържан формат за изход.


Протоколът за DocumentFormatReader

Всички читатели прилагат протокола DocumentFormatReader, който определя общия интерфейс: ⌒load_file(), ゚load-stream ((())` и ∂load__bytes ((()). Фабричната функция ̋create_reader () ̆ връща подходящият четец въз основа на разширението на файла:

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 само когато имате нужда от пряк достъп до двоичния слой за анализиране.
  • За файлове, получени като `байти (например от HTTP качвания), предпочитайте ̋load_bytes (() ∂ да избегнете писането на временни файлове.
  • Читателят на DOC поддържа същата верност за пътуване и връщане като читателя на Docx за текст, параграфи и основно форматиране.

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

IssueCauseFix
load_file() raises FileNotFoundErrorIncorrect file pathVerify the path exists before calling
Garbled text after loadFile is not a valid OLE2 binaryConfirm the file is genuinely .doc format, not a renamed .docx
Missing formatting in outputSome advanced DOC features not yet supportedCheck limitations.md for unsupported features

Часто задавани въпроси

Каква е разликата между DocFileReader и DocFiLeaderCore?

DocFileReaderCore обработва двоичното анализиране на ниско ниво на формата OLE2. ̋DucFireReater∂ го разширява чрез добавяне на метода ゚to_light_document (() ̅, който произвежда пълен LDM ⌒Dokument∂ подходящ за конверсия.

Мога ли да залагам DOC файл от поток?

Да. Използвайте DocFileReaderCore.load_stream(stream) или прехвърлете файлов обект. Това е полезно за уеб приложения, където файловете се качват като потоци.

Дали изчислителът на DOC обработва защитени с парола файлове?

Паролово защитени файлове .doc не се поддържат в момента. Четещият ще повдигне изключение, ако файлът е криптиран.


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

Class / MethodDescription
DocFileReaderFull DOC reader with LDM building capability
DocFileReader.to_light_document()Converts parsed DOC data to an LDM Document
DocFileReaderCoreCore reader for Word 97-2003 (.doc) binary files
DocFileReaderCore.load_file(filepath)Load a DOC file from a path
DocFileReaderCore.load_stream(stream)Load a DOC file from a stream
DocFileReaderCore.load_bytes(data)Load a DOC file from a bytes buffer
DocumentFormatReaderProtocol interface for all document readers
create_reader(path)Factory that returns the correct reader for a file extension
 Български