Nextcloud Office 는 문서를 서버에서 렌더링한다. 그래서 문서에 쓰인 글꼴이 서버 쪽에 없으면 클라이언트에 그 글꼴이 깔려 있어도 다른 글꼴로 대체돼 보인다. 한글 문서에서 줄 간격과 자간이 원본과 달라지는 이유가 대개 이것이다.
글꼴을 넣는 방법은 Collabora 를 어떻게 돌리느냐에 따라 갈린다.
| 구성 | 설명 |
|---|---|
내장 CODE (richdocumentscode 앱) |
Nextcloud 앱 안에 Collabora 가 함께 들어 있다. 별도 컨테이너가 없다 |
외부 Collabora Online (collabora/code 컨테이너 등) |
별도 서버로 돌린다 |
Nextcloud 의 Office 설정 화면(설정 → 관리 → Nextcloud Office)에 글꼴 항목이 있다. 여기에 .ttf · .otf 파일을 올리면 Nextcloud 가 보관하고, 목록을 JSON 으로 노출한다.
https://<nextcloud>/apps/richdocuments/settings/fonts.json
내용은 글꼴 이름과 내려받을 URL 의 대응이다.
{
"NanumGothic": "https://<nextcloud>/apps/richdocuments/settings/fonts/NanumGothic.ttf",
"Roboto": "https://<nextcloud>/apps/richdocuments/settings/fonts/Roboto-Regular.ttf"
}
내장 CODE 를 쓴다면 대개 여기까지로 끝난다. 같은 인스턴스 안에 있으므로 Nextcloud 가 글꼴 목록을 알려 주고 CODE 가 받아 간다. 반영되지 않으면 Office 설정 화면에서 연결을 다시 저장하거나 Nextcloud 를 재시작한다.
별도 서버로 돌린다면 그 서버에 글꼴 설정 URL 을 직접 알려 줘야 한다. coolwsd.xml 에 remote_font_config 를 넣는다.
<remote_font_config>
<url>https://<nextcloud>/apps/richdocuments/settings/fonts.json</url>
</remote_font_config>
운영 환경에서는 반드시 https:// 여야 한다. http:// 는 Collabora Online 의 디버그 빌드에서만 동작한다. 자체 서명 인증서를 쓴다면 Collabora 컨테이너가 그 CA 를 신뢰해야 한다.
컨테이너로 돌린다면 환경변수로 넣는 편이 낫다. 컨테이너 안의 파일을 직접 고치면 재생성 때 사라진다.
services:
collabora:
image: collabora/code
environment:
extra_params: >-
--o:ssl.enable=false
--o:ssl.termination=true
--o:remote_font_config.url=https://<nextcloud>/apps/richdocuments/settings/fonts.json
원격 설정 대신 Collabora 서버의 OS 글꼴 디렉터리에 직접 넣는 방법도 있다. 문서 호환성을 위해 공통 글꼴을 한 번에 깔 때 쓴다.
FROM collabora/code:latest
USER root
COPY fonts/*.ttf /usr/share/fonts/truetype/custom/
RUN fc-cache -f -v
USER cool
Collabora 가 이미 떠 있는 상태에서 넣었다면 캐시를 갱신하고 서비스를 다시 띄워야 인식한다.
fc-cache -f -v
fc-list | grep -i nanum
내장 CODE 에도 같은 방식이 통한다. 다만 글꼴을 넣을 자리가 Nextcloud 컨테이너 안이 되므로, 이미지 빌드 단계에서 넣거나 볼륨으로 마운트해야 앱 업데이트와 컨테이너 재생성에서 살아남는다.
문서를 열고 글꼴 목록에 이름이 뜨는지 본다. 목록에는 있는데 적용이 안 되면 파일 자체가 깨졌거나 글꼴 이름과 파일 안의 패밀리 이름이 다른 것이다.
Microsoft Office 문서와 모양을 맞추려면 그쪽 글꼴이 필요하다. 해당 글꼴은 라이선스가 따로 있으므로 배포 조건을 확인하고 넣는다.
richdocumentscode)의 coolwsd.xml 위치는 Nextcloud 및 앱 버전에 따라 다르고, 아예 노출되지 않는 구성도 있다. 앱 디렉터리 안의 파일을 직접 고치는 방식은 앱 업데이트 때 되돌아가므로 권하지 않는다. 내장 CODE 에서는 관리 화면의 글꼴 업로드를 먼저 시도한다. (확인 필요)