これまでBookstackの設定方法についていろいろと説明してきました。
・日本語化、基本機能 :https://syachiku.net/bookstack-setup01/
・LDAP認証 :https://syachiku.net/bookstack-setup02/
・LDAPグループ利用連携 :https://syachiku.net/bookstack-setup03/
・検索の前方一致から部分一致への変更:https://syachiku.net/bookstack-search/
これで大体の機能を利用することができますが、PDFエクスポート時に日本語が文字化けする問題が発生することがあります。これは、BookStackのデフォルトPDFエンジンであるDompdf
が日本語フォントに十分対応していないためです。
この記事では、BookstackのPDFが文字化けする問題への対処方法について解説します。
1. 解決方法の概要
Dompdf
の代わりに、PDF生成ツールであるwkhtmltopdf
を使用することで、日本語文字化けの問題を解決します。
2. 手順
2.1. wkhtmltopdfのインストール
まず、wkhtmltopdf
をインストールします。
> wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.centos8.x86_64.rpm
> dnf install -y ./wkhtmltox-0.12.6-1.centos8.x86_64.rpm
wkhtmltopdfのパスを確認します。
> which wkhtmltopdf
/usr/local/bin/wkhtmltopdf
/usr/local/bin/wkhtmltopdfが、wkhtmltopdf実行ファイルのパスです。
うまく動作するかwkhtmltopdfを実行してみます。
> wkhtmltopdf
wkhtmltopdf: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
# もし上記のようなエラーが出たら、libsslが必要なのでopensslをインストールします。
> yum install -y compat-openssl11
これでエラーが発生しなくなったはずです。
2.2. BookStackの設定変更
次に、BookStackの設定を変更して、PDFエクスポート時にwkhtmltopdf
を使用するようにします。
- BookStackのインストールディレクトリに移動します。
> cd /var/www/bookstack
.env
ファイルを編集して以下の設定を追記します。
※WKHTMLTOPDFを利用するために、ALLOW_UNTRUSTED_SERVER_FETCHING=trueの設定も必要です。以下のサイトに書いてます。
https://www.bookstackapp.com/docs/admin/security/
> sudo vi .env
WKHTMLTOPDF=/usr/local/bin/wkhtmltopdf
ALLOW_UNTRUSTED_SERVER_FETCHING=true
2.3. キャッシュのクリアとWebサーバ再起動
BookStackのキャッシュをクリアして設定を反映します。
php artisan cache:clear
php artisan config:clear
php artisan view:clear
sudo systemctl restart nginx
3. 動作確認
BookStackのPDFエクスポート機能を利用し、日本語が正常に表示されるか確認します。
4. まとめ
wkhtmltopdf
を利用することで、BookStackのPDFエクスポート時に発生する日本語文字化け問題を解決できました。 BookStackをより快適に活用しましょう!
今回は以上となります。
コメント