← 목록
기타 2026-07-21 4KB 읽기 4분

크라우니 오피스 문서 — 페이지 레이아웃(용지·여백·머리말/꼬리말·페이지번호)

개요

워드 대체 핵심 갭이던 "페이지 레이아웃"을 크라우니 오피스 문서에 장착. 용지 크기·여백·머리말/꼬리말· 페이지번호를 설정하고 인쇄/PDF 출력에 실제 반영. 앱 번들(app/index.html)·native·crowny-browser.m· crowny-shell.m·Makefile 무수정 — crownyBridge.js 몽키패치(§26 신규) + 한선씨 동반만.

무엇을 했나

  • crownyBridge.js §26 신규(punch #12): 용지(A4/Letter/Legal/A3/B5)·여백(좁게/보통/넓게 프리셋 +
사용자 상/우/하/좌 mm)·머리말/꼬리말 텍스트·페이지번호(위치 없음/좌/중/우 + 서식 페이지 N · N / 총M 등)·화면 페이지 폭 표시(선택). 툴바 ▤ 버튼 → 팝오버 패널(팔레트 팝오버 관용구 재사용).
  • 인쇄 반영 이중 경로: (1) @page{size;margin} + margin-box @bottom-center{content:counter(page)}
(Blink/CDP·PDF 경로 = 페이지번호 정본 증거). (2) @media print position:fixed 머리말/꼬리말(매 페이지 반복 = WebKit 대안 — WKWebView 는 CSS Paged Media margin-box 미구현이라 fixed 로 커버).
  • 영속: cdf @@SEC:모듈@@pagesetup 키로 왕복(OFFICE_MODULE_KEYS 등록). 미터치 문서는 스타일
무주입 → 인쇄/저장 무변경(회귀 0, 하위호환).
  • 한선씨 동반 SSOT: 문서페이지.한선 — 용지치수 mm 표·여백 프리셋·@page CSS 생성·번호 margin-box·
페이지번호 필드 치환(N→현재/M→총)·설정 직렬화/복원. hanseonc_high 컴파일 + crownyc run 자체시험 22/22 PASS.

게이트 실적(증거)

  • 문서페이지.한선 자체시험 22/22 PASS.
  • CDP 실측(문서페이지검증.js, headless Chrome=Blink) 25/25 PASS: ▤ 버튼 주입·패널 열림·폼 채움+적용·
@page/머리말/꼬리말 DOM·직렬화 왕복·before(무설정)/after 대조·재복원(용지/여백/번호위치/화면폭 전환).
  • PDF 출력물 실반영(after.pdf, pdftotext): 페이지번호 1 / 총88 / 총8(현재 증가·총계 일관),
머리말 "크라우니 분기 보고서" + 꼬리말 "대외비" 매 페이지. before.pdf 엔 없음(대조 확증).
  • 문서 27/27 무회귀(회귀실행.sh → 회귀하니스.js, CDP :9333).
  • CrownyAI 앱 3초 생존(dist/CrownyAI.app, 신 브릿지 동기 후 재확인 ALIVE).

WKWebView 지원범위 / 대안(보고)

  • @page size/margin = 인쇄 반영. margin-box(@bottom-center 등 counter 페이지번호)는 WebKit 미구현
→ 자동 페이지번호는 Blink/CDP·PDF 경로에서 실렌더(증거 확보). WKWebView ⌘P 경로에서는 position:fixed 머리말/꼬리말이 매 페이지 반복하는 대안이 텍스트를 커버. 정확한 증가 페이지번호는 네이티브 NSPrintInfo 헤더/푸터 지원이 있어야 완전 — 이번 범위(네이티브 무수정)에선 Blink/PDF 경로로 실증.

관련 파일

  • /Users/ef/crownybrowser/bundle/office/bridge/crownyBridge.js (§26 신규, 14941→15263줄, 999420B, syntax OK)
  • /Users/ef/crownybrowser/bundle/office/bridge/문서페이지.한선 (한선씨 동반 SSOT, 22/22)
  • /Users/ef/crownybrowser/bundle/office/bridge/문서페이지검증.js (CDP 하니스, 25/25)
  • dist 동기: dist/CrownyAI.app/Contents/Resources/office/bridge/{crownyBridge.js,문서페이지.한선}
  • 산출 PDF: /tmp/문서페이지검증/{before,after}.pdf

잔여 이슈

  • WKWebView ⌘P 경로에서 counter 페이지번호를 원하면 네이티브 NSPrintInfo header/footer 배선 필요(별도 트랙).
  • 크라우니코드: lookup MISS(신규 도메인) / learn 2건(page CSS 생성·페이지번호 치환).