Bookstack 설정
Bookstack 설정은 PV로 설정된 스토리지에 "/data/tomcat/bookstack/pv/php"의
php-local.ini
www2.conf
를 수정하다.
현재 수정값 -- 파일 업로드 사이즈 수정으로 인하여 override값 정의
; Edit this file to override php.ini directives
date.timezone = Asia/Seoul
upload_max_filesize = 10000M
post_max_size = 10000M
PDF 출력하기 설정
.env설정
#2025 01 27
SESSION_LIFETIME=12000
SESSION_COOKIE_NAME=common_bookstack_session
SESSION_SECURE_COOKIE=false
EXPORT_PDF_COMMAND_TIMEOUT=300
EXPORT_PDF_COMMAND="weasyprint {input_html_path} {output_pdf_path}"
폰트 업로드
notosanskr.zip notosanskr.zip
/config 아래로 복사
한글 전환 프로그램 설치
weasyprint
apk add weasyprint
Deployment Yaml에 반영
spec:
containers:
- name: bookstack
image: linuxserver/bookstack:latest
lifecycle:
postStart:
exec:
command: ["/bin/sh", "-c", "/config/initBookStack.sh"]
/config/initBookStack.sh
#!/bin/bash
# copy fonts
/usr/bin/unzip /config/notosanskr.zip -d /usr/share/fonts/notosanskr/
# install fonts
/usr/bin/fc-cache -fv
# pdf convert programe install
/sbin/apk add weasyprint
PDF 출력시 한글과 이모지(Emoji) 폰트가 안깨지게 하는 법
https://hamchobo.tistory.com/3
https://ko.linux-console.net/?p=2006#gsc.tab=0 <-- wkhtmltopdf

BookStack을 설치한 뒤확인 그대로
사용하면,
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
첨부함 : wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
sudo tar -xvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
cp ./wkhtmltox/bin/wkhtmltopdf /usr/bin/
SSH 창에서 exit로 빠져나와서,
$ exit
아래처럼 하여 현재 디렉토리에 wkhtmltopdf 파일을 복사해 놓고,
$ docker cp wkhtmltopdf1:/bin/wkhtmltopdf .
이를 BookStack 도커 컨테이너의 /usr/bin/로 복사해줍니다(docker to docker 복사기능을 지원안하니 일단 내려받고 다시 옮기는 겁니다).
$ docker cp wkhtmltopdf bookstack:/usr/bin
참고로 복사가 끝나면 임시로 만들어놓은 wkhtmltopdf1 컨테이너는 지워도 됩니다.
이제 다시 BookStack 도커 컨테이너로 들어가서 /config/www아래의 .env 파일을 고쳐준다.
$ sudo docker exec -it bookstack bash
$ cd /config/www
$ vi .env
아래 내용을 추가한 뒤 Esc키를 누른 뒤 : 을 누르고 wq! 로 저장하고 빠져나옵니다.
나는 위의 WKHTMLTOPDF=/usr/bin/wkhtmltopdf를 주석으로 처리 !!!!!
그런 다음 wkhtmltopdf를 실행에 있어서 부수적으로 필요한 패키지들을 깔아줍니다.
$ 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
만약에 Microsoft제공 폰트들도 깔고 싶으면 아래 명령을 실행시킵니다(참고로 저는 설치 안했습니다).
$ 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에서 "파일로 받기" > "PDF 파일"을 눌러보면 제대로 동작할 것입니다.