Skip to content

[RFC] 한컴 PDF paragraph spacing 알고리즘 정밀 분석 (heading + TAC 표 + zone-level) #774

@planet6897

Description

@planet6897

배경

Issue #773 (shortcut.hwp 페이지 1 본문 압축) 분석 결과, 본 결함이 단일 정정 영역을 초과하는 다중 paragraph spacing 누적 결함으로 식별됨. 한컴 PDF 의 paragraph spacing 알고리즘이 IR (ParaShape, LINE_SEG, ColumnDef) 단일 필드만으로 추적 불가한 암시적 디자인 spacing 적용 가능성.

상세 분석 보고서: mydocs/working/task_m100_773_stage3.md

측정 결과 (Issue #773 분석)

PDF 권위 (한글 2022, pdftotext -bbox, 96 dpi 환산)

paragraph y_px96
pi=0 ('글 2010 단축키 일람표' 큰 헤더) 83.54
pi=1 ('커서 이동' 셀 안) 144.32
pi=2 ('빈칸 삽입' 본문 첫 줄) 194.58

rhwp instrument trace

```
TASK773_FP: pi=0 y_in=56.69 y_out=99.36 advance=42.67 sb=26.45 sa=0.00 lh=2000 ls=1200
TASK773_TBL: pi=1 y_in=99.36 y_out=130.45 advance=31.09 (tac_seg_applied)
TASK773_FP: pi=2 y_in=130.45 y_out=150.45 advance=20.00 sb=0.00 sa=0.00 lh=1000 ls=500
```

누적 차이

영역 rhwp PDF 정합 추정 차이
pi=0 advance (lh+ls 계산) 42.67 ~50-60 px -10 ~ -20 px
pi=1 표 자체 height 31.09 ~30 px ~0 (정합)
pi=1 표 후속 spacing 0 ~20 px (PDF 자체) -20 px
누적 ~-50 px

본문 baseline 절대 차이: PDF 137.88 / rhwp 85.10 = -52.78 px

분석 대상

1. heading paragraph spacing (pi=0)

  • rhwp: advance = lh + ls (42.67 px)
  • dump-pages: hwp_used = 53.1 (lh 만, ls 미포함)
  • 추가로 PDF 정합은 더 큰 spacing (~50-60 px)
  • 의문: 큰 폰트 heading paragraph 후 zone 진입 spacing 또는 디자인 spacing 적용 알고리즘?

2. TAC 표 paragraph 후속 spacing (pi=1)

  • IR vpos_end (LINE_SEG 마지막 vpos + lh + ls) 와 정합 (31.09 px)
  • 그러나 PDF 는 표 후속 ~20 px 추가 spacing
  • 의문: 표 후속 cell padding 외 디자인 spacing 또는 후속 paragraph margin 산출 알고리즘?

3. ColumnDef 진입 zone-level top spacing

  • ColumnDef.spacing (10mm = 37.8 px) 가 zone_y_offset 에 반영 안 됨 (가설 B 검증 결과)
  • 의문: 1단 ColumnDef 의 spacing 적용 경로 (paragraph y 좌표) 식별

검증 방안

A. 외부 권위 자료 비교

  • 한컴 편집기 직접 확인 (Windows 환경, 한컴 2010/2020/2022)
  • HWPSPEC 의 paragraph spacing 정의 정밀 분석
  • 다른 hwp 샘플의 PDF 정합 패턴 비교 (cross-validation)

B. 코드/IR 측정

  • 다양한 heading paragraph 샘플의 spacing 패턴 측정
  • TAC 표 후속 spacing 샘플 (PDF 정합) 다수 측정
  • ColumnDef 1단/N단의 zone 진입 spacing 비교

C. RFC 산출물

  • paragraph-level + zone-level spacing 알고리즘 모델 (가설)
  • IR 변환/layout 단계 어디서 적용해야 하는지 (architecture)
  • 회귀 영향 평가 (다중 샘플)

우선순위

depth=high (단일 task 영역 초과). 본 RFC 산출 후 Issue #773 정정 가능.

참고

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