Skip to content

페이지네이션: LINE_SEG vpos-reset / page-break 플래그 무시로 하단 오버플로우 #321

@planet6897

Description

@planet6897

증상

samples/21_언어_기출_편집가능본.hwp 1페이지 우측단 pi=28~30 문단이 본문 영역 아래쪽 경계를 9.5px 초과하여 렌더되며, 하단 바탕쪽(꼬리말/페이지번호) 영역과 시각적으로 겹침.

LAYOUT_OVERFLOW: page=0, col=1, para=28, y=1445.7, bottom=1436.2, overflow=9.5px
LAYOUT_OVERFLOW: page=0, col=1, para=29, y=1445.7, bottom=1436.2, overflow=9.5px
LAYOUT_OVERFLOW: page=0, col=1, para=30, y=1445.7, bottom=1436.2, overflow=9.5px

원인

  • HWP 원본 LINE_SEG(vertical_pos) 기준으로는 pi=9 잔여 줄만 col 1에 있어야 하며, pi=10 또는 pi=30에서 페이지 분할이 일어나야 함.
  • pi=10 line 0 tag=0x00160000 (후속 줄 0x00060000) — 영역 시작 플래그가 서 있음.
  • pi=30 line 0 vpos=0 — vpos 리셋(새 단/페이지).
  • 그러나 src/renderer/pagination/engine.rsColumnBreakType(raw_break_type)과 ParaShape.page_break_before만 검사하고 LINE_SEG tag / vpos-reset 신호를 사용하지 않음.
  • 결과: 높이 합 판정(1223.1 ≤ 1226.4)만으로 통과시킨 뒤 누적 오차로 ~9.5px 오버플로우.

해결 방향

파서 단계에서 LINE_SEG 정보로부터 "HWP 원본이 지정한 페이지/단 분할 위치"를 문단에 힌트로 보존하고, 페이지네이션 엔진이 이를 강제 분할 신호로 처리한다.

마일스톤

v1.0.0 (M100)

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