Skip to content

HWP3 외부 file path 그림 + 폰트 매핑 Document IR 정합 (hwp3-sample10.hwp 결함) #741

@jangster77

Description

@jangster77

⚠️ 의존성

본 issue 의 정정은 PR #732 (Task #724) 머지 후 분기에서 진행.

결함 1 — HWP3 외부 file path 그림 Document IR 누락

본질

HWP3 spec (mydocs/tech/한글문서파일구조3.0.md 라인 894~895):

오프셋 자료형 의미 설명
74 byte 그림 종류 0=외부 파일, 1=OLE, 2=Embedded Image, 3=Drawing Object
83 kchar array[256] 그림 파일 이름 그림 종류가 0, 1, 2일 때만 사용됨

본 환경 결함 (src/parser/hwp3/mod.rs:844~857)

  • pic_type = info_buf[74] 인식 ✓
  • pic_name = info_buf[83..339] 파싱 ✓
  • pic.image_attr.bin_data_id 부여 ✓
  • 외부 file path 자체는 Document IR 에 보존 안 됨

영향

외부 file path 그림 (예: D:\Work\Gwjang\temp\images\oracle.gif) 이 본 환경에서 image 표시 안됨.

한컴 한글 2024 viewer 도 외부 file 못 찾는 경우 placeholder (점선 사각형 + 깨진 이미지 아이콘) 표시 — 본 환경도 placeholder 정합 필요.

결함 2 — 폰트 매핑 차이

본질

samples/hwp3-sample10.hwp paragraph 4 ("Technical Bulletins"):

항목 HWP3 native HWP5 변환본 (한컴 정합)
CharShape id 52 22
SVG font-family 신명 디나루 돋움

본 환경 HWP3 파서가 CharShape 또는 글꼴 이름 array 처리에서 한컴 정합과 다른 매핑.

HWP3 spec (글꼴 이름)

  • 문서에 word 형 글꼴 개수 + kchar array[40] 글꼴 이름 반복
  • 7개 언어별 (한글/영문/한자/일어/기타/기호/사용자) 반복
  • CharShape 가 글꼴 인덱스 참조

본 환경 진단 영역 (후속)

  • 본 환경 HWP3 파서가 글꼴 이름 array 를 7개 언어별로 정확히 파싱하는지
  • CharShape 의 font_face index 매핑이 한컴 정합인지
  • (추가 본질 진단 필요)

영향 영역

  • src/model/image.rsPicture 구조체에 external_path: Option<String> 또는 image source type enum 추가
  • src/parser/hwp3/mod.rs:844pic_type=0/1/2pic_name 을 IR external_path 에 전달
  • src/renderer/ — 외부 file path 그림 placeholder 처리
  • src/parser/hwp3/ (font 영역) — 글꼴 이름 array + CharShape font_face 매핑 정합화

권위 자료

  • samples/hwp3-sample10.hwp (HWP3 native, 외부 file path 그림 + 신명 디나루 폰트)
  • samples/hwp3-sample10-hwp5.hwp (HWP3→HWP5 한컴 변환본, 돋움 폰트)
  • mydocs/tech/한글문서파일구조3.0.md (HWP3 spec)
  • mydocs/tech/한글문서파일형식_5.0_revision1.3.md (HWP5 spec)

Task #722/#724 와의 관계

본 결함은 PR #723 (Task #722) + PR #732 (Task #724) 영역 (HWP3 파서 wrap_zone/page break flag/sw IR 정합) 과 다른 본질 (외부 file path 그림 + 폰트 매핑). 본 task #724 머지 후 분기에서 정정.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions