Skip to content

지문 박스(border_fill_id) 문단이 페이지 분할 시 세로 테두리가 col_bottom 을 초과해 그려짐 #445

@planet6897

Description

@planet6897

증상

exam_kor.hwp SVG 출력에서 모든 페이지의 세로 구분선(지문 박스 테두리)이 PDF(exam_kor.pdf) 대비 길어 보임.

검증 결과

./target/release/rhwp export-svg samples/exam_kor.hwp 결과 (output/svg/exam_kor/)

페이지 세로선 y1 → y2 길이 비고
2 236.3 → 1452.7 1216 col_bottom (1423) +30 초과
5 901.2 → 1506.5 605 col_bottom +84 초과
8 236.3 → 1671.3 1435 페이지 높이(1587) 도 초과
15 924.1 → 1595.8 672 페이지 높이 초과

페이지 1 은 표(rect)로 닫혀 정상.

body-clip 자체가 비정상 확장됨

페이지 body-clip h / bottom
1 1266.08 / 1422.93 (정상)
2 1256.19 / 1452.74
8 1474.73 / 1671.28 (페이지 바깥)

원인 추적

src/renderer/layout.rs:442-474 expand_clip() 가 자식 bbox 의 bottom 이 clip_bottom 보다 크면 clip.height 를 확장만 한다 (축소 없음). 표 외곽 테두리 누락 방지 목적으로 도입된 의도된 동작이지만, border_fill_id 가 있는 PartialParagraph(지문 박스 분할) 의 bbox 가 col_bottom 을 초과해 들어오면 이를 덮으려 clip 이 무한정 늘어나고, 그 결과 paragraph border 의 세로선이 페이지 바깥까지 그려짐.

진짜 원인은 PartialParagraph 의 border bbox 가 현재 페이지에 표시되는 라인 높이만 이 아닌 분할 전 전체 문단 높이(또는 누적 over-fill 분량) 로 계산되는 것으로 추정. expand_clip 동작은 부수적 증상.

영향

  • 시각적 품질: PDF 대비 모든 페이지의 지문 박스가 길어 보여 한컴 출력과의 일치도 저하
  • page 8/15 같은 경우 페이지 바깥(꼬리말 영역, 인쇄 영역 밖)까지 선이 그려짐

재현 방법

cargo build --release
./target/release/rhwp export-svg samples/exam_kor.hwp
# output/svg/exam_kor/exam_kor_002.svg, _008.svg 등 확인

samples/exam_kor.pdf 와 비교.

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