Skip to content

페이지 분기 오버플로 — vpos 권위값/spacing 누적 오차로 본문이 페이지 박스 초과 #356

@planet6897

Description

@planet6897

증상

samples/2022년 국립국어원 업무계획.hwp 페이지 3 에서 본문이 페이지 영역을 넘어 푸터 - 1 - 가 SVG 영역 밖으로 밀려남.

dump-pages 결과:

페이지 3: body_area h=933.5px, used=913.9px, hwp_used≈134.2px, diff=+779.8px
  ...
  FullParagraph pi=39 vpos=66281..68681  ㅇ 국어사전 정보보완심의회...
  FullParagraph pi=40 vpos=500          □ 교육 대상 발굴 및 콘텐츠...    ← vpos 리셋
  FullParagraph pi=41 vpos=3560..5812
  PartialParagraph pi=42 lines=0..1     vpos=8564..10816

PDF 페이지 3 = pi=20..38 까지 ("전문가 감수/사전 반영" 표가 마지막)
SVG 페이지 3 = pi=20..42 (4개 문단 더 들어감, body_area 초과)

정황 분석

  1. body_area = 933.5px ≈ 70,012 HU
  2. pi=39 까지 누적 vpos = 68,681 HU (거의 한계)
  3. pi=40 spacing_before=1000 HU + line=1600 HU 추가 시 70,180 HU > 70,012 HU
  4. HWP 는 한계 초과를 감지하여 pi=40 을 새 페이지로 보냄 (vpos=500 = 새 페이지 상단)
  5. rhwp 페이지네이터는 px 기반 (913.9 < 933.5) 평가로 pi=40+ 를 page 3 에 무리하게 채움
  6. --respect-vpos-reset 플래그도 이 위치에서는 효과 없음

동일 계열 증상

다른 페이지에서도 LAYOUT_OVERFLOW: page=28, col=0, ..., overflow=113.4px 등 다수 발생.
이로 인해 PDF 37쪽 vs SVG 35쪽의 누적 차이 발생 가능성.

후보 원인

후보 설명
A column body 가용 높이 계산 시 footnote_area / spacing 가산 누락
B HWP 가 저장한 ls[i].vpos 권위값을 페이지 분기에 사용하지 않음 — 자체 측정 누적 오차

영향 범위

관련

검증 방법

  1. 페이지 3 break 직후 누적 픽셀 측정 — pi=39 누적 + pi=40 spacing_before 더했을 때 933.5 초과 확인
  2. "next_para.vpos < prev_para.vpos_end" 신호를 강제 break 로 처리하는 옵션 도입 후 비교

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions