Skip to content

feat(design): 디자인 충실도 — 셀 변별 테두리/수직정렬/여백/줄간격 (0.22.0) - #6

Merged
CocoRoF merged 1 commit into
mainfrom
feat/design-fidelity
Aug 31, 2026
Merged

feat(design): 디자인 충실도 — 셀 변별 테두리/수직정렬/여백/줄간격 (0.22.0)#6
CocoRoF merged 1 commit into
mainfrom
feat/design-fidelity

Conversation

@CocoRoF

@CocoRoF CocoRoF commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

hwp 표가 '구조는 맞지만 디자인이 밋밋한' 상태를 벗어난다:

  • 셀 변별 테두리 (표 18/20/21): 실선/대시/점선/이중/없음 + 굵기 + 색 → w:tcBorders → 렌더에서 변마다 (한글 무테두리 셀·제목 상자가 원문대로)
  • 셀 수직 정렬 (표 60 listflags — 한글 기본 세로 가운데) → w:vAlign
  • 셀 안쪽 여백 (표 75) → w:tcMar → per-cell 패딩 렌더
  • 줄간격/문단 간격 (표 38 RATIO·doubled margin) → w:spacing → 흐름 반영

렌더 엔진은 tcBorders 없는 문서에서 기존 회색 격자를 유지(하위호환). 픽스처 5건+렌더 2건 추가, pyhwp 실파일 36개 스윕 34/2/0, 921 passed.

🤖 Generated with Claude Code

hwp 변환 (표 번호 = 한컴 스펙):
- BORDER_FILL 전체 해석(표 18/20/21): 좌/우/상/하 **변별 stroke(실선/대시/
  점선/이중/없음)·굵기(mm 표)·색** → w:tcBorders (sz=1/8pt). '테두리
  없음'(stroke 0)은 nil — 한글 표의 무테두리 셀이 그대로 나온다
- 셀 수직 정렬: 표 60 listflags bits5-6 → w:vAlign (한글 기본 = 가운데)
- 셀 안쪽 여백: 표 75 padding → w:tcMar
- 문단 모양(표 38): 줄간격(RATIO %) → line_spacing, 문단 앞/뒤
  간격(doubled margin) → space_before/after

docx_pages 렌더:
- w:tcBorders 변별 렌더 — 변마다 <line> (dash 패턴, 이중선 2선 근사,
  nil 은 그리지 않음). tcBorders 없는 문서는 기존 회색 격자 유지
- w:tcMar per-cell 안쪽 여백, w:spacing 줄간격 배수(_Line.spacing_mult)
  + 문단 앞/뒤 간격 — 본문/셀 모두

검증: 픽스처에 테두리 3종(실선/대시/없음)·valign·여백·줄간격 200% 추가
(신규 5건) + 렌더 단위 2건. pyhwp 실파일 36개 스윕 34/2/0 유지 — 실파일
표가 변별 테두리 선(<line>)으로 렌더됨 확인. 921 passed.
@CocoRoF
CocoRoF merged commit dff049a into main Aug 31, 2026
2 checks passed
@CocoRoF
CocoRoF deleted the feat/design-fidelity branch August 31, 2026 10:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant