Skip to content

페이지네이션 fit 판정 vs Layout y 진행 정합 — k-water-rfp.hwp p1 LAYOUT_OVERFLOW #359

@edwardkim

Description

@edwardkim

증상

samples/k-water-rfp.hwp 의 SVG 출력에서 페이지 1 하단의 문단이 페이지 분할되지 않고 클램프됨. 페이지 3 디버그 레이아웃 확인 시 LAYOUT_OVERFLOW 경고가 페이지 1 (page=0) 에서 발생.

LAYOUT_OVERFLOW: page=0, col=0, para=34, type=FullParagraph, y=1288.0, bottom=1028.9, overflow=259.1px
LAYOUT_OVERFLOW_DRAW: section=1 pi=35 line=0 y=1304.0 col_bottom=1028.9 overflow=275.1px
LAYOUT_OVERFLOW: page=0, col=0, para=35, type=PartialParagraph, y=1316.8, bottom=1028.9, overflow=287.9px

dump-pages -p 0 결과 페이지 1 items=33, used=728.1px (col_height=915.5 이내) 로 표시되지만, 실제 layout 단계에서 pi=34/35 가 col_bottom 을 약 260~288px 초과. 즉 pagination 단계의 fit 판정과 layout 단계의 실제 y 진행이 정합하지 않음.

재현

./target/release/rhwp export-svg samples/k-water-rfp.hwp -p 2 --debug-overlay -o output/debug/k_water_p3/
# stderr 에 LAYOUT_OVERFLOW 3건 발생
# 페이지 3 SVG 만 봐도 페이지 1 문제가 stderr 로 함께 보고됨

영향 범위

분석 방향 (정공법)

원복이나 히스토리 추적 없이 현재 코드 기준으로 정확한 원인 식별:

1. Pagination fit 판정 vs Layout y 진행 정합 점검

  • dump-pages 의 used=728.1px (pagination 단계) 와 실제 layout 의 마지막 항목 y 좌표 (~1316.8) 차이 ~588px
  • 한 페이지에 들어간다고 판정한 fit 누적 높이와 layout 실제 사용 높이 사이 드리프트
  • TypesetEngine::format_paragraphLayoutEngine::layout_* 의 height 산정 일관성 점검 필요

2. 셀이나 표 외 문단의 vpos / line_height / spacing 누적 점검

  • pi=0~33 모두 vpos / line_height 가 일관 누적되는지
  • 특히 pi=7 의 TAC 표 (3x1, 122.7px) 가 pagination fit 에 반영되었는지
  • pi=31 의 89.1px 그림 (Shape, tac=true) 영향

3. col_height 계산 점검

  • body_area h=915.5 vs col_height (header/footer 제외 후) 일관성
  • LAYOUT_OVERFLOW 의 bottom=1028.9 는 페이지 절대 좌표 — body_area.y(113.3) + h(915.5) = 1028.8 와 일치 ✅
  • pagination 단계는 col_height 만 보고, layout 단계는 col_bottom 절대 좌표 — 환산 일관성 확인

검증 방향

마일스톤

v1.0.0 (M100)

우선순위

높음 — v0.7.6 사이클 누적 작업의 정합성 검증. 다른 샘플의 잠재 회귀 가능.

관련

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions