Skip to content

인라인 글상자(treat_as_char + wrap=TopAndBottom) 가 있는 문단 줄의 본문 텍스트 누락 #455

@planet6897

Description

@planet6897

증상

samples/exam_kor.hwp 페이지 2 좌측 단의 첫 문단(pi=33) 두 번째 줄에서 본문 39자가 모두 누락되고, 문단에 인라인으로 박힌 글상자(텍스트 "개화")만 단 가운데(x≈428.8)에 표시된다. 결과적으로 본문이 1줄 → 3줄로 건너뛰는 비문이 되며, 좌·우 단 정렬이 어긋나 보인다.

재현

./target/release/rhwp export-svg samples/exam_kor.hwp
# output/svg/exam_kor/exam_kor_002.svg 좌측 단 y≈321 위치 확인

좌측 단 y 좌표별 텍스트:

y=295.1 "서양의 과학과 기술, 천주교의 수용을 반대했던 이항로를 비롯한"
y=321.4 "개화"        ← line 2 의 본문 39자 누락
y=347.6 "수없는 대세로 자리잡았다. 개물성무(開物成務)와 화민성속"

IR

./target/release/rhwp dump samples/exam_kor.hwp -s 0 -p 33

  • 문단 0.33: cc=186, text_len=177, controls=1
  • ls[1]: ts=35, vpos=7116, lh=1417 (line 2, 39자, 높이 5mm)
  • controls[0] = 사각형(글상자), 9.0×5.0mm, treat_as_char=true + wrap=TopAndBottom, 내부 텍스트 "개화"

원인 가설

treat_as_char=true 일 때는 wrap 속성을 무시하고 글자처럼 인라인 배치되어야 하는데, 현재 렌더러가 wrap=TopAndBottom 분기를 타면서 line 2 의 본문 텍스트(offset 35..73)를 스킵하는 것으로 보인다. 글상자 내부 "개화" 만 렌더되어 결과적으로 본문 한 줄이 사라진다.

의심 코드

  • src/renderer/composer.rs:127 (Shape tac 등록)
  • src/renderer/layout/shape_layout.rs (글상자 분기)
  • src/renderer/layout.rs (TopAndBottom 처리)

기대

treat_as_char=true 우선 적용 → 글상자를 한 글자처럼 line 2 안에 배치, 주변 본문 39자도 함께 렌더.

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