개요
Task #877 (hwp3-sample16.hwp WASM 로드 실패 + paragraph alignment + 시각 정합) 완료 후 별도 task 로 분리된 잔존 3건을 1개 통합 이슈로 묶음.
본 task #877 의 핵심 목표 (panic 차단 + paragraph alignment + 한컴 viewer 시각 정합) 는 22 commits 로 달성되었으나, 아래 3건은 모두 rhwp 렌더러 / HWP5 파서 영역으로 본 task (HWP3 파서) 범위 외부.
상세 분석: mydocs/working/task_m100_877_residual.md (PR #890 merge 후 접근 가능)
잔존 항목 (Scope)
1. HWP3 페이지 외곽선 좌표 기준 정합 (renderer / layout)
증상: sample16 페이지 2 (목차) 의 우측 페이지 번호 (1, 3, 5, 6, ...) 가 페이지 외곽선 박스 밖에 표시됨. 한컴 viewer (HWP5 변환본) 에서는 외곽선 안에 표시.
원인 추정:
영역: rhwp renderer / layout (page border 좌표 기준).
2. paragraph multi-line picture SVG image 중복 emit (renderer / svg)
증상: sample16 페이지 18 (한컴 16쪽) 의 paragraph 394 [1] 그림 (WMF, bin_id=3) 이 SVG 에 3개 <image> 로 emit됨 (모두 동일 href). 시각상 2~3개 다이어그램 중복.
dump 결과:
- paragraph 394: ls_count=3, controls=3 ([0] 표 + [1] 그림 + [2] 표)
- text:
" " (3 picture markers)
시도한 fix (효과 없음):
- treat_as_char picture wrap=Square → TopAndBottom 정합 (9e9d1bf): wrap 변경 후에도 image 3개 그대로
- → wrap 영향 아님. paragraph 의 multi-line + picture-per-line 처리 영역 bug
영역: rhwp 렌더러의 paragraph multi-line picture 처리 (typeset.rs / picture_footnote.rs / svg.rs).
3. HWP5 변환본 페이지 수 inflate (HWP5 파서 / pagination)
증상: samples/hwp3-sample16-hwp5.hwp (한컴 HWP3 → HWP5 변환본) 를 rhwp 가 98 페이지로 인식. 한컴 viewer 표시 = 62 페이지.
관찰:
- rhwp HWP3 sample16: 64 페이지 (한컴 정합)
- rhwp HWP5 변환본: 98 페이지 (한컴 62 페이지)
- HWP5 변환본은 외곽선 / 그림 / 글머리 등 시각 정합도 sample16 HWP3 보다 더 정확
원인: rhwp 의 HWP5 파서 또는 pagination 영역. 본 task #877 (HWP3 파서) 범위 외부.
우선순위
| 항목 |
우선순위 |
사유 |
| 1. 페이지 외곽선 좌표 |
중 |
sample16 1개에서만 관찰. 외곽선 자체는 표시됨 |
| 2. paragraph multi-line picture 중복 |
중 |
sample16 16쪽 다이어그램 가시성 영향. 한컴 정합 시각 미달 |
| 3. HWP5 변환본 페이지 수 |
높 |
36 페이지 inflate (62 → 98) 는 광범위 영향 가능. 다른 샘플 회귀 점검 필요 |
권장 처리 방식
각 항목은 독립적이며 영역이 다르므로 (renderer × 2, HWP5 파서 × 1), 본 통합 이슈는 추적용으로 유지하고 실제 작업은 항목별 별도 task 브랜치 로 진행 권장:
local/task{이번호}_1_page_border — 항목 1
local/task{이번호}_2_picture_dup — 항목 2
local/task{이번호}_3_hwp5_pagination — 항목 3
각 항목 완료 시 본 통합 이슈에 진행 보고. 모두 완료 시 본 이슈 close.
관련
개요
Task #877 (hwp3-sample16.hwp WASM 로드 실패 + paragraph alignment + 시각 정합) 완료 후 별도 task 로 분리된 잔존 3건을 1개 통합 이슈로 묶음.
본 task #877 의 핵심 목표 (panic 차단 + paragraph alignment + 한컴 viewer 시각 정합) 는 22 commits 로 달성되었으나, 아래 3건은 모두 rhwp 렌더러 / HWP5 파서 영역으로 본 task (HWP3 파서) 범위 외부.
상세 분석: mydocs/working/task_m100_877_residual.md (PR #890 merge 후 접근 가능)
잔존 항목 (Scope)
1. HWP3 페이지 외곽선 좌표 기준 정합 (renderer / layout)
증상: sample16 페이지 2 (목차) 의 우측 페이지 번호 (1, 3, 5, 6, ...) 가 페이지 외곽선 박스 밖에 표시됨. 한컴 viewer (HWP5 변환본) 에서는 외곽선 안에 표시.
원인 추정:
border_margin*=355 hunit (5mm)을spacing_*으로 설정src/renderer/layout.rs:748-776) 의attr & 0x01가드:paper_based = false→ body_area 기준 (= 페이지 여백 안)영역: rhwp renderer / layout (page border 좌표 기준).
2. paragraph multi-line picture SVG image 중복 emit (renderer / svg)
증상: sample16 페이지 18 (한컴 16쪽) 의 paragraph 394 [1] 그림 (WMF, bin_id=3) 이 SVG 에 3개
<image>로 emit됨 (모두 동일 href). 시각상 2~3개 다이어그램 중복.dump 결과:
" "(3 picture markers)시도한 fix (효과 없음):
영역: rhwp 렌더러의 paragraph multi-line picture 처리 (
typeset.rs/picture_footnote.rs/svg.rs).3. HWP5 변환본 페이지 수 inflate (HWP5 파서 / pagination)
증상:
samples/hwp3-sample16-hwp5.hwp(한컴 HWP3 → HWP5 변환본) 를 rhwp 가 98 페이지로 인식. 한컴 viewer 표시 = 62 페이지.관찰:
원인: rhwp 의 HWP5 파서 또는 pagination 영역. 본 task #877 (HWP3 파서) 범위 외부.
우선순위
권장 처리 방식
각 항목은 독립적이며 영역이 다르므로 (renderer × 2, HWP5 파서 × 1), 본 통합 이슈는 추적용으로 유지하고 실제 작업은 항목별 별도 task 브랜치 로 진행 권장:
local/task{이번호}_1_page_border— 항목 1local/task{이번호}_2_picture_dup— 항목 2local/task{이번호}_3_hwp5_pagination— 항목 3각 항목 완료 시 본 통합 이슈에 진행 보고. 모두 완료 시 본 이슈 close.
관련