증상
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 초과)
정황 분석
- body_area = 933.5px ≈ 70,012 HU
- pi=39 까지 누적 vpos = 68,681 HU (거의 한계)
- pi=40 spacing_before=1000 HU + line=1600 HU 추가 시 70,180 HU > 70,012 HU
- HWP 는 한계 초과를 감지하여 pi=40 을 새 페이지로 보냄 (vpos=500 = 새 페이지 상단)
- rhwp 페이지네이터는 px 기반 (913.9 < 933.5) 평가로 pi=40+ 를 page 3 에 무리하게 채움
--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 권위값을 페이지 분기에 사용하지 않음 — 자체 측정 누적 오차 |
영향 범위
관련
검증 방법
- 페이지 3 break 직후 누적 픽셀 측정 — pi=39 누적 + pi=40 spacing_before 더했을 때 933.5 초과 확인
- "next_para.vpos < prev_para.vpos_end" 신호를 강제 break 로 처리하는 옵션 도입 후 비교
증상
samples/2022년 국립국어원 업무계획.hwp페이지 3 에서 본문이 페이지 영역을 넘어 푸터- 1 -가 SVG 영역 밖으로 밀려남.dump-pages결과:PDF 페이지 3 = pi=20..38 까지 ("전문가 감수/사전 반영" 표가 마지막)
SVG 페이지 3 = pi=20..42 (4개 문단 더 들어감, body_area 초과)
정황 분석
--respect-vpos-reset플래그도 이 위치에서는 효과 없음동일 계열 증상
다른 페이지에서도
LAYOUT_OVERFLOW: page=28, col=0, ..., overflow=113.4px등 다수 발생.이로 인해 PDF 37쪽 vs SVG 35쪽의 누적 차이 발생 가능성.
후보 원인
영향 범위
관련
검증 방법