증상
rhwp-studio 에서 메뉴 → 파일 → 인쇄 (또는 Ctrl+P) 실행 시 인쇄 미리보기 창의 모든 요소 (print-bar + SVG 페이지) 가 비정상적으로 거대하게 표시됨.
사용자가 `Ctrl+0` (줌 100% 리셋) 한 번 누르면 정상화되지만, 일반 사용자는 이 단축키를 모름.
원인 (확정)
작업지시자 보고: "전체 인쇄 페이지가 확대되는 겁니다" + "Ctrl+0 으로 정상화"
→ 창 자체의 브라우저 줌 레벨이 비정상적으로 큼. CSS 영향이 아닌 브라우저 줌 메모리 문제.
`rhwp-studio/src/command/commands/file.ts:164` 의 `window.open('', '_blank')` 가 about:blank 페이지로 인쇄 창을 엶. Chrome 은 사이트별 줌을 기억:
- about:blank 도 하나의 사이트로 취급
- 한 번 확대한 적 있으면 다음 about:blank 창들도 그 줌을 상속
- 사용자는 메인 창의 줌과 별개로 about:blank 의 줌이 큼을 인지하지 못함
영향
- 본 v0.2.0 배포 사용자 일부 (이전에 about:blank 를 확대해본 적 있는 환경) 가 만남
- 인쇄 자체는 정상 동작하나 미리보기 화면이 비정상 → 부정적 인상
- 작업지시자 환경에서 직접 발견 (2026-04-19)
해결 방향 후보 (창 origin 변경 위주)
CSS fix 는 효과 없음 (브라우저 chrome 의 줌이라 페이지 CSS 로 못 잡음).
A. Blob URL 사용 — `window.open(URL.createObjectURL(blob))` 로 변경
- 장점: 확장 origin 의 줌 = 메인 창 줌 = 보통 100% 로 통일. about:blank 줌 메모리 회피
- 단점: 인라인 이벤트 핸들러로 변경 필요 (CSP 해결책 검토), Blob URL 의 보안 정책
B. 확장 내부 페이지 + postMessage — `chrome.runtime.getURL('print.html')` 로 별도 HTML 파일 + 데이터 전달
- 장점: 가장 정도. 줌·CSP 모두 안전
- 단점: 작업 범위 큼 (신규 HTML 파일 + 메시지 프로토콜)
C. 현재 창의 모달 또는 iframe 으로 인쇄 — 새 창 자체를 안 띄움
- 장점: 줌 메모리 문제 자체 회피
- 단점: 인쇄 흐름 큰 변경. `window.print()` 동작 영향 검토 필요
권장 순서
- (A) 먼저 시도 — Blob URL 만 변경, CSP 호환 확인
- (A) 부족하면 (B) 확장 내부 페이지
- (C) 는 큰 재설계
검증
- about:blank 줌을 200% 로 만든 환경에서 인쇄 미리보기 정상 표시
- 정상 환경 (about:blank 100%) 에서 회귀 0
- 인쇄 다이얼로그 (Ctrl+P) 정상 동작
- 인쇄 결과 페이지 크기 정상
마일스톤
v0.2.x 또는 다음 패치 (사용자 영향 보고 빈도 따라).
관련
증상
rhwp-studio 에서 메뉴 → 파일 → 인쇄 (또는 Ctrl+P) 실행 시 인쇄 미리보기 창의 모든 요소 (print-bar + SVG 페이지) 가 비정상적으로 거대하게 표시됨.
사용자가 `Ctrl+0` (줌 100% 리셋) 한 번 누르면 정상화되지만, 일반 사용자는 이 단축키를 모름.
원인 (확정)
작업지시자 보고: "전체 인쇄 페이지가 확대되는 겁니다" + "Ctrl+0 으로 정상화"
→ 창 자체의 브라우저 줌 레벨이 비정상적으로 큼. CSS 영향이 아닌 브라우저 줌 메모리 문제.
`rhwp-studio/src/command/commands/file.ts:164` 의 `window.open('', '_blank')` 가 about:blank 페이지로 인쇄 창을 엶. Chrome 은 사이트별 줌을 기억:
영향
해결 방향 후보 (창 origin 변경 위주)
CSS fix 는 효과 없음 (브라우저 chrome 의 줌이라 페이지 CSS 로 못 잡음).
A. Blob URL 사용 — `window.open(URL.createObjectURL(blob))` 로 변경
B. 확장 내부 페이지 + postMessage — `chrome.runtime.getURL('print.html')` 로 별도 HTML 파일 + 데이터 전달
C. 현재 창의 모달 또는 iframe 으로 인쇄 — 새 창 자체를 안 띄움
권장 순서
검증
마일스톤
v0.2.x 또는 다음 패치 (사용자 영향 보고 빈도 따라).
관련