개요
HWP 파일 내장 미리보기 이미지(PrvImage)를 자동 추출하여, 웹 관리자가 최소 코드로 방문자에게 HWP 문서 미리보기를 제공할 수 있도록 한다.
배경
- HWP 파일의 CFB 컨테이너에 PrvImage 스트림(BMP/GIF)이 내장되어 있음
- 파서에
Preview → PreviewImage 구조가 이미 구현됨 (src/model/document.rs)
- Chrome/Edge 확장 프로그램이
data-hwp-thumbnail 속성을 지원함
- 현재 WASM API에 썸네일 추출 기능 미노출
목표
웹 관리자가 아래 한 줄만으로 HWP 미리보기를 제공할 수 있어야 한다:
<a href="doc.hwp" data-hwp="true">문서.hwp</a>
확장 프로그램이:
- HWP 파일을 부분 다운로드 (Range 요청)
- PrvImage 스트림 추출
- 호버 시 썸네일 자동 표시
서버 측 처리 없이, 클라이언트 사이드 WASM으로 완결.
구현 범위
WASM API
extractThumbnail(data: Uint8Array) → { format, base64, width, height }
- 전체 파서를 거치지 않고 CFB의 PrvImage 스트림만 빠르게 추출
- BMP → PNG 변환 (브라우저 호환성)
Chrome 확장 프로그램
data-hwp="true" 링크 호버 시 썸네일 자동 표시
- Range 요청으로 CFB 헤더 + PrvImage 스트림만 부분 다운로드
- 캐싱 (동일 URL 재요청 방지)
CLI
rhwp thumbnail sample.hwp → PNG 파일 추출
rhwp thumbnail sample.hwp --base64 → base64 출력 (웹 임베드용)
웹 관리자 시나리오
최소 (확장 프로그램 자동)
<a href="doc.hwp" data-hwp="true">문서.hwp</a>
<!-- 확장이 자동으로 썸네일 추출 + 호버 미리보기 -->
사전 생성 (서버 측)
<a href="doc.hwp" data-hwp="true" data-hwp-thumbnail="/thumbs/doc.webp">문서.hwp</a>
<!-- 미리 생성된 썸네일 사용 (더 빠름) -->
배치 생성 도구
# 폴더 내 모든 HWP에서 썸네일 일괄 추출
for f in *.hwp; do rhwp thumbnail "$f" -o "thumbs/${f%.hwp}.webp"; done
개요
HWP 파일 내장 미리보기 이미지(PrvImage)를 자동 추출하여, 웹 관리자가 최소 코드로 방문자에게 HWP 문서 미리보기를 제공할 수 있도록 한다.
배경
Preview→PreviewImage구조가 이미 구현됨 (src/model/document.rs)data-hwp-thumbnail속성을 지원함목표
웹 관리자가 아래 한 줄만으로 HWP 미리보기를 제공할 수 있어야 한다:
확장 프로그램이:
서버 측 처리 없이, 클라이언트 사이드 WASM으로 완결.
구현 범위
WASM API
extractThumbnail(data: Uint8Array) → { format, base64, width, height }Chrome 확장 프로그램
data-hwp="true"링크 호버 시 썸네일 자동 표시CLI
rhwp thumbnail sample.hwp→ PNG 파일 추출rhwp thumbnail sample.hwp --base64→ base64 출력 (웹 임베드용)웹 관리자 시나리오
최소 (확장 프로그램 자동)
사전 생성 (서버 측)
배치 생성 도구