DOC 리더 사용하기

DOC Reader 작업하기

Aspose.Words FOSS for Python에는 레거시 Word 97-2003 .doc 파일용 전용 리더가 포함됩니다. DocFileReader 클래스는 OLE2 바이너리 형식을 파싱하고 Light Document Model (LDM)을 생성하여 조작하거나 다른 형식으로 변환할 수 있습니다.


DOC 파일 로드

디스크에서 .doc 파일을 열고 Document로 변환하려면 DocFileReader를 사용하십시오:

import aspose.words_foss as aw

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

Document 생성자는 create_reader()에 위임하며, create_reader()은 .doc 확장자를 기반으로 DocFileReader를 자동으로 선택합니다.


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메모리 내 버퍼에서 읽기

라이트 문서 모델 구축

로드한 후, DocFileReader에 대해 to_light_document()을 호출하여 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 문서를 확보하면 지원되는 모든 출력 형식으로 저장할 수 있습니다.


The 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을 사용하십시오.
  • bytes 형태로 받은 파일(예: HTTP 업로드)에서는 임시 파일 작성을 피하기 위해 load_bytes()을 선호하십시오.
  • DOC 리더는 텍스트, 단락 및 기본 서식에 대해 DOCX 리더와 동일한 라운드-트립 정확성을 지원합니다.

일반적인 문제

문제원인수정
load_file()은 FileNotFoundError을 발생시킨다잘못된 파일 경로호출하기 전에 경로가 존재하는지 확인하십시오.
로드 후 텍스트가 깨짐파일이 유효한 OLE2 바이너리가 아닙니다파일이 실제로 .doc 형식인지 확인하고, 이름이 변경된 .docx가 아닌지 확인하십시오.
출력에 서식이 누락되었습니다일부 고급 DOC 기능은 아직 지원되지 않습니다limitations.md에서 지원되지 않는 기능을 확인하십시오

FAQ

DocFileReader과 DocFileReaderCore의 차이점은 무엇입니까?

DocFileReaderCore은 OLE2 형식의 저수준 바이너리 파싱을 처리합니다. DocFileReader은 to_light_document() 메서드를 추가하여 변환에 적합한 전체 LDM Document을 생성함으로써 이를 확장합니다.

스트림에서 DOC 파일을 로드할 수 있나요?

예. DocFileReaderCore.load_stream(stream)를 사용하거나 파일과 유사한 객체를 전달하십시오. 이는 파일이 스트림으로 업로드되는 웹 애플리케이션에 유용합니다.

DOC 리더가 비밀번호로 보호된 파일을 처리합니까?

비밀번호로 보호된 .doc 파일은 현재 지원되지 않습니다. 파일이 암호화된 경우 리더가 예외를 발생시킵니다.


API Reference 요약

클래스 / 메서드설명
DocFileReader전체 DOC 리더와 LDM 구축 기능
DocFileReader.to_light_document()구문 분석된 DOC 데이터를 LDM 문서로 변환합니다
DocFileReaderCoreWord 97-2003 (.doc) 이진 파일용 핵심 리더
DocFileReaderCore.load_file(filepath)경로에서 DOC 파일을 로드합니다
DocFileReaderCore.load_stream(stream)스트림에서 DOC 파일을 로드합니다
DocFileReaderCore.load_bytes(data)바이트 버퍼에서 DOC 파일을 로드합니다
DocumentFormatReader모든 문서 리더를 위한 프로토콜 인터페이스
create_reader(path)파일 확장자에 맞는 올바른 리더를 반환하는 팩토리

참조

 한국어