Skip to content

feat(legacy): doc/xls/ppt 디자인 충실도 — 표 정의/변별 테두리/글꼴/불릿 (0.23.0) - #7

Merged
CocoRoF merged 1 commit into
mainfrom
feat/legacy-design-fidelity
Sep 1, 2026
Merged

feat(legacy): doc/xls/ppt 디자인 충실도 — 표 정의/변별 테두리/글꼴/불릿 (0.23.0)#7
CocoRoF merged 1 commit into
mainfrom
feat/legacy-design-fidelity

Conversation

@CocoRoF

@CocoRoF CocoRoF commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

hwp(#6)와 같은 디자인 수준으로 나머지 3종 완성 (POI HWPF/HSLF·xlrd 대조):

  • doc: sprmTDefTable(0xD608) 행 정의 — 열너비/가로·세로 병합/수직 정렬/BRC80 변별 테두리, sprmTDefTableShd 셰이딩, LSPD 줄간격·문단 앞뒤 간격. 병합 연속 셀의 스타일 덮어쓰기 가드
  • xls: XF 4변 테두리(13종 스타일+색) → openpyxl + xlsx_pages 렌더에 변별 테두리/기울임/밑줄/취소선/셀 정렬
  • ppt: FontEntityAtom 글꼴 이름 + fHasBullet/bullet.char → a:buChar (엔진이 접두 렌더)

926 passed, hwp 실파일 스윕 34/2/0 유지, 래스터 스모크 3종.

🤖 Generated with Claude Code

hwp(0.22.0)와 같은 디자인 수준으로 나머지 3종 완성. 레이아웃은
reference_data 의 Apache POI(HWPF TableSprmUncompressor·TC80·BRC80,
HSLF)와 xlrd 대조.

doc (Word97):
- **sprmTDefTable(0xD608)**: 행 정의 — 열 경계(twips)→gridCol 너비,
  TC80 rgf 의 **가로/세로 병합**(fFirstMerged/fMerged/fVertRestart/
  fVertMerge → gridSpan/vMerge), 셀 수직 정렬, **BRC80 변별 테두리**
  (종류/굵기 1/8pt/ico 색 → tcBorders)
- sprmTDefTableShd(0xD609): SHD80 → 셀 셰이딩
- 문단 간격: sprmPDyaLine(LSPD 배수)/DyaBefore/DyaAfter → w:spacing
- 병합 연속 셀이 앵커 스타일을 덮어쓰지 않게 가드

xls (BIFF8):
- XF 테두리 4변 (line style 13종 + icv 색) → openpyxl Border
- xlsx_pages 렌더: **변별 테두리 <line>**(dash 패턴), 기울임/밑줄/
  취소선, 셀 수평 정렬(가운데/우측), 명시 정렬 > 타입 기본

ppt (PPT97):
- FontCollection(2005)/FontEntityAtom(4023) → 런 글꼴 이름
- paraFlags fHasBullet + bullet.char → a:buChar/a:buNone (pptx→svg
  엔진이 접두로 렌더)

테스트: TDefTable/BRC/SHD·XF 테두리·글꼴/불릿 픽스처 확장 + 신규 단언
8건 — 926 passed, pyhwp 실파일 스윕 34/2/0 유지, 래스터 스모크 3종.
@CocoRoF
CocoRoF merged commit 0432f82 into main Sep 1, 2026
2 checks passed
@CocoRoF
CocoRoF deleted the feat/legacy-design-fidelity branch September 1, 2026 02:32
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