알한글 v0.1.10

HWP/HWPX 형식별 저장, 전체 페이지 PDF·인쇄와 rhwp v0.8.4 문서 호환성 개선을 포함한 패치 릴리즈입니다.

변경 요약

  • HWP와 HWPX를 형식에 맞는 macOS 저장 패널로 저장하고, 저장 결과를 같은 형식으로 다시 열 수 있습니다.
  • 현재 편집 상태의 전체 페이지를 searchable PDF로 저장하고 같은 page geometry로 native 인쇄를 시작합니다.
  • PDF·인쇄용 문서 SVG의 script, 외부 resource와 navigation을 전용 WebView에서 차단합니다.
  • rhwp v0.8.4를 반영해 암호 문서, 중첩 표, 특수 글리프와 대형 문서 처리 범위를 보강했습니다.
  • 개인정보 설정에서 영구 사용자·기기 식별자 없는 익명 실행·업데이트 추이 공유를 끌 수 있습니다.

포함된 rhwp 변화

v0.1.10은 rhwp v0.8.4 기준의 core와 bundled rhwp-studio를 사용합니다. 앱 내부 provenance 기준 commit은 496333b27d21ddb9114ba9ae340bcb895870c9a7입니다.

  • HWP5 EncryptVersion 4, HWP3와 암호화 HWPX의 열기·저장·재열기 계약을 확장했습니다.
  • 중첩 표의 페이지 분할, 셀 내부 흐름과 마지막 하단 테두리 표시를 보강했습니다.
  • 중첩 표 안의 텍스트·표 선택과 복사, 다중 셀 서식과 셀 크기 조절을 개선했습니다.
  • PUA로 기록된 사각 번호와 작은 오른쪽 삼각형을 실제 글리프로 복원합니다.
  • 압축 해제 상한과 대형 표 처리 개선으로 비정상 압축 입력과 큰 문서의 memory·render 위험을 줄였습니다.

알한글 앱 변화

  • HWP/HWPX 저장 command, exporter 결과와 목적지 확장자·container signature를 write 전에 함께 확인합니다.
  • HWPX 저장 뒤 후속 Command+S도 같은 URL과 HWPX 형식을 유지합니다.
  • PDF 저장과 인쇄는 현재 editor가 만든 page SVG를 공용 renderer로 변환해 최신 편집 내용과 searchable text를 반영합니다.
  • PDF·인쇄 renderer는 content JavaScript와 popup을 끄고, inline style과 embedded data: image 외 resource·navigation을 기본 차단합니다.
  • rhwp v0.8.4에서 제거된 render-tree field를 Swift decoder가 요구하지 않도록 보정해 native preview/thumbnail 호환성을 유지합니다.
  • 익명 실행·업데이트 이벤트는 문서 내용·파일명·경로나 영구 식별자를 포함하지 않으며, opt-out하면 보관 중인 이벤트를 삭제합니다.
  • 설치본 version/build 기준은 0.1.10 (16)입니다.

알려진 한계

  • Quick Look과 Finder 썸네일은 native 렌더 경로를 사용하고, 앱 화면은 WKWebView 기반 rhwp-studio 경로를 사용합니다.
  • 일부 문서에서는 글꼴, 배치, 페이지 표현이 원본 한글 프로그램과 다르게 보일 수 있습니다.
  • HWP/HWPX 저장은 대표 문서의 container·재열기를 확인하지만 모든 문서 요소의 의미론적 완전 무손실을 보장하지 않습니다.
  • PDF 내보내기는 전체 page SVG를 memory에 보유하며 문서 전체 progress, deadline과 수집 중 취소 UI는 아직 없습니다.
  • 실제 가로·세로 혼합 문서 fixture는 없어 혼합 geometry와 인쇄 방향은 합성 page SVG 계약으로 검증했습니다.
  • 익명 실행 추이는 전체 설치 수나 고유 사용자 수가 아니라 수집 서버에 도달한 이벤트 건수입니다.

설치와 업데이트

DMG 파일을 내려받아 앱을 Applications 폴더로 옮긴 뒤, 앱을 한 번 실행합니다. v0.1.10 공식 DMG는 Intel Mac과 Apple Silicon Mac에서 같은 파일을 사용합니다.

Homebrew Cask로도 같은 signed/notarized universal DMG를 설치할 수 있습니다. brew install --cask postmelee/tap/alhangeul을 실행하세요.

설치한 앱에서는 메뉴 막대의 알한글 > 업데이트 확인...을 선택해 새 버전을 확인할 수 있습니다.