Skip to content

쪽번호 처리 버그 — NewNumber 컨트롤이 모든 후속 페이지에 매번 재적용됨 #353

@planet6897

Description

@planet6897

증상

samples/2022년 국립국어원 업무계획.hwp 의 SVG 출력에서 본문 모든 페이지 푸터가 - 1 - 로 동일하게 렌더링됨.

dump-pages 출력:

페이지 1 → page_num=1
페이지 2 → page_num=2
페이지 3 → page_num=3
페이지 4 → page_num=1   ← 이후 모든 페이지가 1로 고정
페이지 5..35 → page_num=1

PDF 비교: 페이지 10 PDF 푸터=- 8 - vs SVG 푸터=- 1 -.

근본 원인

src/renderer/typeset.rs:1652 (TypesetEngine::finalize_pages):

for &(nn_pi, nn_num) in new_page_numbers {
    if nn_pi <= fp {                  // 매 페이지 매번 참
        page_num = nn_num as u32;     // 매 페이지마다 NewNumber 값으로 리셋
    }
}

NewNumber 컨트롤이 한 번만 적용되어야 하는데, 그 컨트롤의 소유 문단 인덱스(nn_pi)가 페이지의 첫 문단(fp) 이하인 모든 후속 페이지에서 조건이 참이 되어 매번 page_num 이 NewNumber 값으로 리셋된다.

추가로 src/renderer/pagination/engine.rs:1850 의 또 다른 finalize_pages 구현(RHWP_USE_PAGINATOR=1 경로)도 page_last_para = max(...) 의 단조성에 의존하여 신뢰성이 낮음.

수행 계획서

mydocs/plans/task_pagenum_plan.md 작성 완료.

영향 범위

  • 본문 푸터 쪽번호
  • 머리말/꼬리말의 \u{0015} 치환 (layout.rs)
  • 표 셀/글상자 내 쪽번호 마커 치환 (table_layout.rs, shape_layout.rs)

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