PDF 변환 한글 지원
Bookstack에서는 "dompdf"이라는 모듈을 사용해 PDF로 변환을 진행합니다.
한글 지원을 위해서는 "wkhtmltopdf" 모듈로 변경을 진행해 줘야 합니다.
먼저 Bookstack "설정 > 맞춤 > 헤드 작성"에 아래 코드를 넣어 줍니다. (Google 한글 웹폰트를 사용하기 위함)
<link href=" https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap " rel="stylesheet">
<style>
body {
text-rendering: geometricPrecision;
}
body, button, input, select, label, textarea {
font-family: "Noto Sans KR";
}
</style>
Portainer를 통해 Bookstack 콘솔로 진입하시던가 아니면 아래와 같이 ssh로 Bookstack 콘솔로 진입 합니다.
sudo docker exec -it bookstack bash
Font 디렉토리로 이동 합니다.
cd /usr/share/fonts
Google "Noto Sans KR" 폰트를 다운받습니다.
curl -o notosanskr.zip https://fonts.google.com/download?family=Noto%20Sans%20KR
압축을 해제하기 위해 unzip을 설치해 줍니다.
apk add unzip
압축을 해제 합니다.
unzip -d /usr/share/fonts/notosanskr notosanskr.zip
폰트를 설치 합니다.
fc-cache -fv
폰트 설치를 확인합니다.
fc-list | grep noto
이제 이모지 문자를 설치할 차례입니다.
아래 github (https://github.com/adobe-fonts/emojione-color)에서 폰트를 로컬에 다운로드 합니다.
https://github.com/adobe-fonts/emojione-color/archive/refs/heads/master.zip
다운로드 받은 zip 파일을 bookstack의 "config" 디렉토리에 업로드 합니다.
Bookstack 콜솔로 진입합니다.
sudo docker exec -it bookstack bash
"config"로 이동 합니다.
cd /config/
업로드한 zip 파일을 폰트 디렉토리로 이동합니다.
mv emojione-color-master.zip /usr/share/fonts
폰트 디렉토리로 이동합니다.
cd /usr/share/fonts
압축을 해제 합니다.
unzip -d emojionecolor emojione-color-master.zip
폰트를 설치 합니다.
fc-cache -fv
설치를 확인 합니다.
fc-list | grep emojione
wkhtmltopdf를 설치할 차례 입니다.
도커 레지스트리에서 "surnet/alpine-wkhtmltopdf" 이미지를 찾아 다운로드 합니다. 저는 최신 버전인 "3.18.0-0.12.6-full"를 다운로드 했습니다.
설치 시 기본으로하고, 아래의 체크 박스를 해제 합니다.
Bookstack 콜솔에 접속 중이라면 아래 명령어로 빠져나갑니다.
exit
아래 명령어로 "wkhtmltopdf" 도커 파일을 로컬로 복사해 줍니다. (docker to docker 복사는 지원이 안되서 로컬로 복사 후 다시 복사하는 단계를 진행 합니다.)
"surnet-alpine-wkhtmltopdf1" 부분은 "wkhtmltopdf" 도커 컨테이너 이름을 넣어주시면 됩니다.
docker cp surnet-alpine-wkhtmltopdf1:/bin/wkhtmltopdf .
복사한 "wkhtmltopdf" 파일을 Bookstack 도커로 복사해 줍니다.
docker cp wkhtmltopdf bookstack:/usr/bin
"bookstack/config/www/" 밑에 있는 ".env" 파일을 열어 아래 내용을 추가해 줍니다.
WKHTMLTOPDF=/usr/bin/wkhtmltopdf
ALLOW_UNTRUSTED_SERVER_FETCHING=true
Bookstack 콜솔로 진입합니다.
sudo docker exec -it bookstack bash
"config"로 이동 합니다.
cd /config/www
아래 패키지 파일을 설치해 줍니다.
apk add --update --no-cache libstdc++ libx11 glib libxrender libxext libintl libcrypto1.1 libssl1.1 ca-certificates fontconfig freetype ttf-dejavu ttf-droid ttf-freefont ttf-liberation
MS 폰트를 설치해 줍니다.
apk add --no-cache --virtual .build-deps msttcorefonts-installer
update-ms-fonts
fc-cache -f
rm -rf /tmp/*
apk del .build-deps
마지막으로 폰트 리스트를 업데이해 해줍니다.
fc-cache -fv
Bookstack 컨테이너를 재실행해 줍니다.