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 문서로 변환합니다 |
DocFileReaderCore | Word 97-2003 (.doc) 이진 파일용 핵심 리더 |
DocFileReaderCore.load_file(filepath) | 경로에서 DOC 파일을 로드합니다 |
DocFileReaderCore.load_stream(stream) | 스트림에서 DOC 파일을 로드합니다 |
DocFileReaderCore.load_bytes(data) | 바이트 버퍼에서 DOC 파일을 로드합니다 |
DocumentFormatReader | 모든 문서 리더를 위한 프로토콜 인터페이스 |
create_reader(path) | 파일 확장자에 맞는 올바른 리더를 반환하는 팩토리 |