메인 항목으로

PDF 변환 한글 지원

Bookstack에서는 "dompdf"이라는 모듈을 사용해 PDF로 변환을 진행합니다.

한글 지원을 위해서는 "wkhtmltopdf" 모듈로 변경을 진행해 줘야 합니다.

먼저 Bookstack "설정 > 맞춤 > 헤드 작성"에 아래 코드를 넣어 줍니다. (Google 한글 웹폰트를 사용하기 위함)

Portainer를 통해 Bookstack 콘솔로 진입하시던가 아니면 아래와 같이 ssh로 Bookstack 콘솔로 진입 합니다.

sudo docker exec -it bookstack bash

Font 디렉토리로 이동 합니다.

cd /usr/share/fonts

notosanskr 디렉토리를 생성하고 이동합니다.

mkdir notosanskr
cd notosanskr

Google "Noto Sans KR" 폰트를 다운받습니다.

curl -o Noto_Sans_KR.zip https://fonts.google.com/download?family=Noto%20Sans%20KR

bookstack_font1.png

압축을 해제하기 위해 unzip을 설치해 줍니다.

apk add unzip

bookstack_font2.png

압축을 해제 합니다.

unzip -d /usr/share/fonts/notosanskr notosanskr.zip

bookstack_font3.png

폰트를 설치 합니다.

fc-cache -fv

bookstack_font4.png

폰트 설치를 확인합니다.

fc-list | grep noto

bookstack_font5.png

이제 이모지 문자를 설치할 차례입니다. (Option 사항 입니다.)

아래 github (https://github.com/adobe-fonts/emojione-color)에서 폰트를 로컬에 다운로드 합니다.

https://github.com/adobe-fonts/emojione-color/archive/refs/heads/master.zip

다운로드 받은 zip 파일을 bookstack의 "config" 디렉토리에 업로드 합니다.

bookstack_font6.png

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

bookstack_font7.png

폰트를 설치 합니다.

fc-cache -fv

bookstack_font8.png

설치를 확인 합니다.

fc-list | grep emojione

bookstack_font9.png

Bookstack 콜솔에 접속 중이라면 아래 명령어로 빠져나갑니다.

exit

"bookstack/config/www/" 밑에 있는 ".env" 파일을 열어 아래 내용을 추가해 줍니다.

EXPORT_PDF_COMMAND="weasyprint {input_html_path} {output_pdf_path}"

Bookstack 콘솔로 진입합니다.

sudo docker exec -it bookstack bash

"config"로 이동 합니다.

cd /config/www

아래 패키지 파일을 설치해 줍니다.

apk add weasyprint


MS 폰트를 설치해 줍니다. (Option 사항 입니다.)

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_font14.png

Bookstack 컨테이너를 재실행해 줍니다.

[주의] 도커 이미지가 업데이트 되면 위 설정은 모두 초기화 됩니다. Whatchtower를 이용 중이라면 예외 Lable 처리를 하셔야 합니다.
https://wiki.dhcloud.me/books/docker-updater-watchtower/page/94f6d