증상
samples/2025년 기부·답례품 실적 지자체 보고서_양식.hwpx 21페이지에서:
- PDF: 차트 이미지(170×111mm) 바로 아래 2x1 빈 표 배치
- SVG: 차트와 2x1 표 사이에 ~400px 빈 공간, 2x1 표는 페이지 하단(y≈937)으로 밀려 일부 잘림. 후속 10x5 표(pi=192)는 521px overflow.
근본 원인
vpos 지연 보정(src/renderer/layout.rs:1387-1400)의 lazy_base 산출이 TopAndBottom Picture에서 어긋남.
- pi=172 (Picture, vert=Para, wrap=TopAndBottom, 419.6px)
Shape pi=172 처리 후 sequential y_offset이 차트 바닥까지 진행 (94.5→528.8)
- 직후
vpos_page_base/lazy_base 무효화 (line 1490-1491)
- pi=173 vpos 보정 시
vpos_end는 pi=172의 텍스트 라인 끝(차트 미반영)을 사용하지만 y_delta_hu는 차트 바닥 기준 → lazy_base가 차트 높이만큼 낮게 잡힘
- pi=174 (2x1 표)에서
end_y = 933.7 산출되어 y_offset이 528.8 → 933.7로 강제 점프 (차트 높이 ~31470 HU 이중 반영)
기존 bypass 가드(prev_has_overlay_shape, line 1366-1370):
Control::Shape만 검사, Control::Picture 미처리
InFrontOfText|BehindText만 우회, TopAndBottom 미처리
수정 방향
prev_has_overlay_shape 가드 확장:
Control::Picture (non-TAC) 포함
TopAndBottom + vert_rel_to=Para 케이스 우회 추가
검증
- 21페이지 SVG에서 2x1 표가 차트 바로 아래 배치
LAYOUT_OVERFLOW 로그 사라짐 (또는 합당한 잔여 overflow만 남음)
- 회귀: 기존 샘플 페이지 비교(특히 다른 TopAndBottom 그림 포함 문서)
증상
samples/2025년 기부·답례품 실적 지자체 보고서_양식.hwpx21페이지에서:근본 원인
vpos 지연 보정(
src/renderer/layout.rs:1387-1400)의lazy_base산출이 TopAndBottom Picture에서 어긋남.Shape pi=172처리 후 sequential y_offset이 차트 바닥까지 진행 (94.5→528.8)vpos_page_base/lazy_base무효화 (line 1490-1491)vpos_end는 pi=172의 텍스트 라인 끝(차트 미반영)을 사용하지만y_delta_hu는 차트 바닥 기준 →lazy_base가 차트 높이만큼 낮게 잡힘end_y = 933.7산출되어 y_offset이 528.8 → 933.7로 강제 점프 (차트 높이 ~31470 HU 이중 반영)기존 bypass 가드(
prev_has_overlay_shape, line 1366-1370):Control::Shape만 검사,Control::Picture미처리InFrontOfText|BehindText만 우회,TopAndBottom미처리수정 방향
prev_has_overlay_shape가드 확장:Control::Picture(non-TAC) 포함TopAndBottom + vert_rel_to=Para케이스 우회 추가검증
LAYOUT_OVERFLOW로그 사라짐 (또는 합당한 잔여 overflow만 남음)