DOCX Reader 사용하기

DOCX Reader와 작업하기

The DocumentReader 클래스는 Office Open XML (.docx) 파일을 읽고 추상화된 데이터 구조인 Light Document Model (LDM)을 생성합니다. 이 구조는 단락, 표, 도형, 이미지 및 서식을 처리하여 콘텐츠를 조작하거나 변환할 수 있도록 제공합니다.


DOCX 파일 읽기

가장 간단한 방법은 Document 생성자를 사용하는 것으로, 이 생성자는 .docx 파일에 대해 자동으로 DocumentReader을 선택합니다:

import aspose.words_foss as aw

doc = aw.Document("input.docx")
print(f"Sections: {len(doc.sections)}")
for para in doc.all_paragraphs:
    print(para.text)

DocumentReader 아키텍처

DocumentReader은(는) 책임을 분리하기 위해 두 개의 믹스인을 사용합니다:

ComponentRole
DocumentReaderMain DOCX parser — reads XML parts from the OPC package
LdmBuilderMixinConstructs the Light Document Model from parsed data
ShapeParserMixinParses drawing and shape elements embedded in the document

세 가지 모두 내부에서 함께 작동하며 — 결과는 Document API를 통해 상호 작용합니다.


텍스트 추출

로드된 문서에서 text 속성을 사용하여 파일에 저장하지 않고 일반 텍스트를 추출합니다:

import aspose.words_foss as aw

doc = aw.Document("contract.docx")
text = doc.text
print(text[:500])

단락 및 서식 작업

LDM을 통해 단락 수준 속성에 접근합니다:

import aspose.words_foss as aw

doc = aw.Document("styled.docx")
for para in doc.all_paragraphs:
    for run in para.runs:
        if run.font.bold:
            print(f"Bold: {run.text}")

Run에는 DOCX XML에서 구문 분석된 글꼴 속성(굵게, 기울임, 크기, 색상)이 포함됩니다.


도형 및 이미지 처리

ShapeParserMixin은(는) 구문 분석 중에 드로잉 요소를 추출합니다. 도형은 단락 내용 내에서 ShapeNode 객체로 LDM에 나타납니다:

import aspose.words_foss as aw

doc = aw.Document("with-images.docx")
for para in doc.all_paragraphs:
    for node in para.content_sequence:
        if hasattr(node, 'shape_type'):
            print(f"Shape: {node.shape_type}")

팁 및 모범 사례

  • 표준 워크플로에는 Document("file.docx")을(를) 사용하십시오 — 이는 리더 선택, 패키지 검증 및 LDM 구성을 자동으로 처리합니다.
  • 스트림 기반 입력(웹 업로드)의 경우, 파일과 유사한 객체를 Document 생성자에 전달하십시오.
  • 표가 포함된 파일은 doc.tables 또는 doc.all_tables을 통해 접근하십시오.
  • 배치 처리에서는 동일한 Python 프로세스를 재사용하여 반복적인 가져오기 오버헤드를 피하십시오.

일반적인 문제

IssueCause수정
파일을 로드할 수 없음 (예외)손상되었거나 불완전한 ZIP 아카이브파일이 유효한 .docx (ZIP-기반 OPC 패키지)인지 확인하십시오
출력에 이미지가 누락되었습니다패키지에 이미지 파트가 삽입되지 않음DOCX에 삽입된(링크된 것이 아닌) 이미지가 포함되어 있는지 확인하십시오
출력에 내용이 누락되었습니다필수 XML 파트가 패키지에 누락되었습니다파일이 잘렸을 수 있습니다; 원본 애플리케이션에서 다시 내보내세요

FAQ

Light Document Model (LDM)은 무엇입니까?

LDM은 모든 리더가 공유하는 내부 표현입니다. 형식별 세부 사항(OPC XML, OLE2 바이너리)을 추상화하여 섹션, 단락, 실행, 표 및 도형으로 구성된 공통 구조로 변환합니다.

DocumentReader가 DOCM(매크로 사용) 파일을 처리할 수 있나요?

매크로 사용 .docm 파일은 동일한 OPC 구조를 사용합니다. 리더는 문서 내용을 구문 분석할 수 있지만, 매크로는 보존되지 않으며 실행되지 않습니다.

리더는 큰 문서를 어떻게 처리하나요?

리더는 XML 파트를 순차적으로 처리합니다. 메모리 사용량은 문서 크기에 비례합니다. 매우 큰 문서의 경우, 섹션을 개별적으로 처리하는 것을 고려하세요.


API Reference 요약

클래스 / 메서드설명
DocumentReaderDOCX 문서를 읽고 추상화된 데이터 구조를 생성합니다
LdmBuilderMixinLight Document Model 구축 메서드를 제공하는 믹스인
ShapeParserMixin그리기/도형 파싱 메서드를 제공하는 Mixin
DocumentWord 문서를 나타냅니다 (LDM 루트)
create_reader(path)파일 확장자에 맞는 올바른 리더를 반환하는 Factory

참조

 한국어