Skip to content

Visual Diff 기반 렌더링 호환성 개선: PUA 심볼 + 문단 테두리 여백 + 표 외곽 테두리 #249

@seanshin

Description

@seanshin

개요

Visual Diff 파이프라인(한컴 PDF ↔ rhwp SVG 페이지별 픽셀 비교)으로 발견한 렌더링 불일치 3건을 수정한다.

문제 현상

1. PUA 심볼 문자 렌더링 오류

  • Wingdings 등 심볼 폰트의 PUA 영역(U+F000~F0FF) 문자가 □(두부 문자)로 표시됨
  • 영향 렌더러: SVG, Canvas, HTML 세 경로 모두

2. 문단 테두리/배경 여백 미반영

  • border_fill 렌더링 시 문단의 margin_left / margin_right를 무시
  • 테두리 박스가 텍스트 영역보다 넓게 그려짐

3. 표 외곽 테두리 누락

  • table.border_fill_id가 설정된 경우 외곽 테두리를 그리지 않음
  • 셀로 커버되지 않는 영역(여백 등)에만 fallback 적용 필요

수정 내용

항목 파일 내용
PUA 변환 src/renderer/svg.rs U+F000~F0FF → 유니코드 표준 문자 매핑
문단 테두리 src/renderer/layout/ border_fill 렌더링에 paragraph margin 반영
표 외곽 테두리 src/renderer/table.rs border_fill_id fallback + 셀 커버 영역 제외

검증

  • cargo test 793개 전체 통과
  • Visual Diff 파이프라인으로 한컴 렌더링과 페이지별 비교 검증

참고

  • Visual Diff 파이프라인: visual-diff/ 디렉토리

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