
백엔드
한/글 문서 파일 형식: Python을 통한 HWP 포맷 파싱하기 (1)
두줄요약
Python의 `olefile`과 `zlib`로 HWP `DocInfo`를 읽고, 레코드 헤더를 분해해 문서 속성·BinData·글꼴 정보를 파싱하는 방법을 설명했습니다. 또한 가변 길이 데이터와 확장 크기 처리로 HWP의 레코드 기반 구조를 이해할 수 있게 정리했습니다.
핵심 내용
- Python의
olefile,zlib를 이용해 HWP의DocInfo스트림을 읽고 압축 해제하는 파싱 흐름 소개 - 레코드 헤더의
Tag ID,Level,Size를 분리해 문서 속성, ID 매핑, BinData, 글꼴 정보를 순차적으로 해석하는 방식 설명 - 가변 길이 문자열과 확장 크기 레코드 처리, 레코드 잔여 크기 스킵으로 파싱 순서 유지하는 구조 제시
- HWP가 문서 정보와 부가 데이터를 레코드 기반으로 저장해 호환성과 확장성을 확보하는 점 정리
