Skip to content

Task #1562: HWPX 폼 컨트롤 caption && 표시 정합 보정#1565

Merged
postmelee merged 6 commits into
edwardkim:develfrom
postmelee:local/task1562
Jun 27, 2026
Merged

Task #1562: HWPX 폼 컨트롤 caption && 표시 정합 보정#1565
postmelee merged 6 commits into
edwardkim:develfrom
postmelee:local/task1562

Conversation

@postmelee

@postmelee postmelee commented Jun 26, 2026

Copy link
Copy Markdown
Collaborator

요약

Closes #1562
Refs #1534

HWPX 폼 컨트롤 caption의 저장값 R&&D를 유지하면서, 사용자 표시 계층에서는 한컴 뷰어와 같이 R&D로 보이도록 보정했습니다.

#1534 / PR #1536에서 XML escape 누적 손상은 해결되었지만, rhwp 렌더러가 FormObject.caption 저장값을 그대로 출력하면서 R&&D가 화면에 그대로 보이는 문제가 남아 있었습니다.

변경 사항

  • src/renderer/form_caption.rs에 form caption 전용 display helper 추가
    • &&&
    • 단일 &는 보존
    • &&가 없으면 borrowed 반환
  • SVG / Web Canvas / Skia renderer의 PushButton, CheckBox, RadioButton caption 출력 경로에 helper 적용
  • HWPX parser/serializer/storage 값은 변경하지 않음
  • samples/hwpx/form-002.hwpx 기반 SVG 표시 회귀 테스트 추가
  • tests/golden_svg/form-002/page-0.svg 갱신
  • 하이퍼-워터폴 작업 문서 추가

검증

  • cargo test --lib renderer::form_caption
  • cargo test --test issue_1562_hwpx_form_caption_display
  • env UPDATE_GOLDEN=1 cargo test --test svg_snapshot form_002
  • cargo test --test svg_snapshot form_002
  • cargo test --test issue_1534_hwpx_form_caption_escape
  • cargo fmt --check
  • cargo clippy --all-targets -- -D warnings

시각 검증

rhwp-studio 로컬 서버에서 samples/hwpx/form-002.hwpx를 로드해 page 0의 폼 caption 표시를 확인했습니다.

Before After
image image

확인 대상:

  • IP R&&D연계IP R&D연계
  • R&&D 자율성트랙(일반)R&D 자율성트랙(일반)
  • R&&D 자율성트랙(지정)R&D 자율성트랙(지정)

제외 범위

  • HWPX 저장값 변환
  • XML attribute 전역 치환
  • 본문 텍스트의 && 변환
  • 표/그림/도형 <hp:caption> 변환
  • 단일 & mnemonic prefix 제거 또는 access-key 밑줄 표시

단일 & 처리까지 확장하려면 한컴 실물 샘플과 표시 근거를 추가로 확보한 뒤 별도 이슈로 다루는 편이 안전합니다.

이슈 처리 메모

이 PR이 merge되면 #1562의 완료 조건은 충족됩니다.
#1534는 #1536으로 XML escape 누적 손상이 해결되었고, 이 PR로 남은 표시 호환성 문제까지 해결되므로 merge 후 작업지시자 승인 하에 #1562와 #1534 close를 함께 판단할 수 있습니다.

@postmelee postmelee added hwpx HWPX 포맷 처리: 파싱, 직렬화, roundtrip, XML/ZIP 패키지 보존, 호환성 개선 rendering SVG/Canvas/PDF 등 렌더 출력과 시각 표시: 그리기, 표시 누락, bbox, paint 정합성 regression 이전 수정/릴리즈/PR 이후 재발하거나 새로 발생한 동작 변화 labels Jun 27, 2026
@postmelee postmelee self-assigned this Jun 27, 2026
@postmelee postmelee added this to the v1.0.0 milestone Jun 27, 2026
@postmelee postmelee merged commit 507a4cb into edwardkim:devel Jun 27, 2026
7 checks passed
@postmelee

postmelee commented Jun 27, 2026

Copy link
Copy Markdown
Collaborator Author

머지 완료했습니다.

요약:

  • HWPX 폼 컨트롤 caption의 저장값 R&&D는 유지하면서, 사용자 표시 계층에서는 한컴 뷰어와 같이 R&D로 보이도록 보정했습니다.
  • 적용 범위는 SVG / Web Canvas / Skia renderer의 PushButton, CheckBox, RadioButton caption 표시 경로입니다.
  • parser / serializer / storage 값은 변경하지 않았습니다.

Merge commit:

검증:

  • code 검증 대상 head ceb736b30f5482b66a52b68aabcec357cdd8a6dd 기준 Build & Test, CodeQL, Canvas visual diff 모두 통과
  • review 문서 후속 커밋 adc90a02b5a3813352bddcbcdb326179f12a8b16 기준 preflight checks 통과, 문서 전용 fast-pass로 heavy jobs skip 확인
  • 로컬 검증:
    • cargo test --lib renderer::form_caption
    • cargo test --test issue_1562_hwpx_form_caption_display
    • cargo test --test issue_1534_hwpx_form_caption_escape
    • cargo test --test svg_snapshot form_002
    • cargo fmt --check
    • cargo clippy --all-targets -- -D warnings

시각 검증:

  • samples/hwpx/form-002.hwpx page 0에서 다음 표시를 확인했습니다.
    • IP R&&D연계 -> IP R&D연계
    • R&&D 자율성트랙(일반) -> R&D 자율성트랙(일반)
    • R&&D 자율성트랙(지정) -> R&D 자율성트랙(지정)
image

후속:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hwpx HWPX 포맷 처리: 파싱, 직렬화, roundtrip, XML/ZIP 패키지 보존, 호환성 개선 regression 이전 수정/릴리즈/PR 이후 재발하거나 새로 발생한 동작 변화 rendering SVG/Canvas/PDF 등 렌더 출력과 시각 표시: 그리기, 표시 누락, bbox, paint 정합성

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant