Code

BookStackで記事をPDFエクスポートすると日本語が文字化けする場合の対処方法

スポンサーラベル
Code

これまで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を使用するようにします。

  1. BookStackのインストールディレクトリに移動します。
> cd /var/www/bookstack
  1. .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をより快適に活用しましょう!

今回は以上となります。

コメント

タイトルとURLをコピーしました