증상
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)
증상
samples/2022년 국립국어원 업무계획.hwp의 SVG 출력에서 본문 모든 페이지 푸터가- 1 -로 동일하게 렌더링됨.dump-pages출력:PDF 비교: 페이지 10 PDF 푸터=
- 8 -vs SVG 푸터=- 1 -.근본 원인
src/renderer/typeset.rs:1652(TypesetEngine::finalize_pages):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)