지원 포맷
뷰어 API(전체 문서 보기)와 썸네일 API(미리보기 이미지 1장)는 형식별로 처리 방식이 다릅니다. 아래 표에서 확장자별로 어떻게 처리되는지, 그리고 아직 지원하지 않는 포맷은 무엇인지 확인할 수 있습니다.
지원 포맷
| 확장자 | 뷰어 API 처리 | 썸네일 API 처리 |
|---|---|---|
| hwp / hwpx | 클라이언트 사이드 WASM 렌더러로 브라우저에서 직접 렌더링(서버 변환 없음) | 고정 플레이스홀더 아이콘을 반환합니다. hwp 렌더링은 브라우저 WASM 전용이라 서버에서 실시간 래스터화가 불가능한 현재의 알려진 제약입니다. |
| eml | 자체 구현한 경량 MIME 파서로 브라우저에서 직접 파싱(서버 변환 없음). 헤더(보낸사람/받는사람/제목/날짜), 첨부파일 다운로드, 본문을 표시합니다. HTML 본문은 발신자가 넣은 신뢰할 수 없는 콘텐츠라 sandbox 처리된 iframe에만 렌더링해 스크립트 실행을 차단합니다. | 고정 플레이스홀더 아이콘을 반환합니다. eml도 hwp와 같은 클라이언트 전용 파싱 포맷이라 서버 썸네일은 미지원입니다. |
| doc/docx, ppt/pptx, odt, rtf, txt, key, numbers, pages | Gotenberg(LibreOffice)로 PDF 변환 후 표시 | Gotenberg(PDF 변환, office류만) → 첫 페이지를 이미지로 래스터화 → 리사이즈 |
| xls/xlsx, xlsm, ods, csv | 기본은 다른 오피스 문서와 동일하게 Gotenberg(LibreOffice)로 PDF 변환 후 표시. 뷰어의 SPREADSHEET 배지를 누르면 SheetJS로 원본을 직접 파싱해 행 번호/열 문자가 있는 엑셀 형태의 실제 표(시트 탭 전환/스크롤 가능)로 그 자리에서 전환됩니다. xlsx/xlsm은 배경색·굵기·테두리 같은 실제 셀 서식도 함께 복원됩니다(자체 구현 — xls/ods는 미지원). | Gotenberg(PDF 변환) → 첫 페이지를 이미지로 래스터화 → 리사이즈 (office와 동일한 경로 — 카드/목록용 정적 이미지가 목적이라 뷰어와 무관하게 처리) |
| 변환 없이 그대로 표시 | pdftoppm으로 첫 페이지를 바로 래스터화(Gotenberg 변환 불필요) → 리사이즈 | |
| png/jpg/gif/webp/bmp, svg, tif/tiff, heic/heif | 이미지로 그대로 표시(tiff는 PNG로 변환 후 표시) | 원본 이미지를 그대로 리사이즈(svg/tiff는 래스터화 후 리사이즈) |
| mp4/webm/ogv/mov | 브라우저 <video> 태그로 그대로 재생(서버 변환 없음). 컨테이너/코덱에 따라 일부 브라우저에서 재생이 안 될 수 있는 best-effort 지원입니다. | 고정 플레이스홀더 아이콘을 반환합니다. 프레임 추출에는 ffmpeg가 필요한데 현재 이미지에는 포함돼 있지 않아, hwp와 같은 방식으로 처리합니다. |
허용 확장자/최대 파일 크기/보관 기간은 Setting에서 조정할 수 있습니다.
지원하지 않는 포맷
| 확장자 | 사유 |
|---|---|
| avi, wmv, flv, mkv 등 | 코덱/컨테이너 호환성이 낮고, 서버에 트랜스코딩 파이프라인(ffmpeg)이 없어 브라우저 재생을 보장할 수 없습니다. |
| RAW 사진(.cr2, .nef, .arw 등), .psd, .ai/.eps | 디코딩에 필요한 라이브러리가 이미지에 포함돼 있지 않습니다. |
| .zip, .rar 등 압축 파일 | 개별 문서가 아니라 여러 파일의 묶음이라 문서 뷰어의 대상이 아닙니다. |
여기 없는 포맷이 필요하면 Setting의 "허용 확장자"에 추가할 수 있는지 먼저 검토해보세요 — 다만 실제 변환/렌더링이 되는지는 별개입니다.