Skip to content

자동 보정 (reflow_line_segs) path 가 본 fix #998 우회 → HWP5 sample16 69 페이지 (그대로 보기 64 vs) #1000

@jangster77

Description

@jangster77

개요

`samples/hwp3-sample16-hwp5.hwp` 를 rhwp-studio 에서 열 때:

자동 보정의 +5 페이지는 본 task #998 의 fix path 우회 때문.

동작 차이

단계 code path spacing_before 페이지 수
그대로 보기 composer.compose_lines fallback (line_segs.is_empty()) 0 (PR #999 보정) 64
자동 보정 `reflow_line_segs` → line_segs 채움 2264 HU (raw, 보정 미적용) 69

Root cause

`reflow_line_segs` (src/renderer/composer/line_breaking.rs:902\) 가 paragraph 의 비어있던 line_segs 를 채워줌 (sample16 의 59 paragraph → 163건 line_seg 생성).

이후 composer 호출 시:

재현

```bash

그대로 보기 (composer fallback): 64 페이지

./target/release/rhwp export-svg samples/hwp3-sample16-hwp5.hwp -o /tmp/h5/
ls /tmp/h5/*.svg | wc -l # 64

rhwp-studio 에서 자동 보정 클릭 후: 69 페이지 (시각 확인)

또는 reflow_line_segs 호출 후 export 시: 69 페이지

```

수정 방향 후보

후보 설명 위치 Risk
I1 typeset 의 spacing_before=0 보정을 `line_segs.is_empty()` 조건 외에 다른 마커로 발동 (예: reflow 시 표시) typeset.rs
I2 reflow_line_segs 가 line_segs 채울 때 spacing_before 도 같이 보정 (paragraph 데이터 자체 수정) composer/line_breaking.rs
I3 typeset 의 spacing_before 보정 조건 완화 (예: 특정 ParaShape pattern 감지) typeset.rs

scope

  • 1차 검증: `samples/hwp3-sample16-hwp5.hwp` 의 자동 보정 후 페이지 수 (목표: 64)
  • 영향 모듈: `src/renderer/typeset.rs` 또는 `src/renderer/composer/line_breaking.rs`
  • 회귀 검증: 240 sample + Editor 기능

관련

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