概要
OSSのコンテンツ管理システムである、「Alfresco」にて、ファイルプレビュー時に日本語フォントが文字化け(豆腐)してしまう事象が発生した為、その対処法を記述します。
#環境
- ホストOS
- CentOS7.6
- Docker
- 1.13.1
- Docker-Compose
- 1.24.1
- 使用したAlfrescoのリポジトリ
- リポジトリのデプロイ時に参考にした資料
原因
ファイルプレビューに必要なPDFを生成している「LibreOffice」コンテナに日本語フォントが不足しているのが原因でした。
対処法
① フォントを保存しているディレクトリを永続化
本対処内容を永続的に反映させる為、フォントを保存しているディレクトリを永続化する設定を、docker-compose.ymlに記述します。
docker-compose.yml
#~~~~~~~~~~~~~~~~~~~~ 前略 ~~~~~~~~~~~~~~~~~~~~
libreoffice:
image: alfresco/alfresco-libreoffice:2.1.0-EA4
mem_limit: 1g
environment:
JAVA_OPTS: " -Xms256m -Xmx512m"
ports:
- 8092:8090
#★★★★★★★★★★ 追記ここから ★★★★★★★★★★
volumes:
- libreoffice-fonts-data:/opt/libreoffice5.4/share/fonts/truetype/
#★★★★★★★★★★ 追記ここまで ★★★★★★★★★★
#~~~~~~~~~~~~~~~~~~~~ 中略 ~~~~~~~~~~~~~~~~~~~~
#★★★★★★★★★★ 追記ここから ★★★★★★★★★★
volumes:
libreoffice-fonts-data:
external: true
#★★★★★★★★★★ 追記ここまで ★★★★★★★★★★
②コンテナの起動
command
docker-compose up -d
③rootでlibreofficeコンテナへログイン
※ コンテナIDは**「docker ps」**コマンドで調べることが出来ます。
command
docker exec -it --user root {コンテナID} /bin/bash
④フォントのインストール
yumコマンドでフォントをインストールします。
command
yum install -y ipa-gothic-fonts ipa-pgothic-fonts
⑤インストールされたフォントファイルのパスを特定、フォントファイルの移動
インストールしたフォントファイル**「rpm」**コマンドで調べ、libreofficeのフォントディレクトリへ配置します。
※フォントファイルは通常のゴシック体とPゴシック体の2つが存在するので、両方移動させます。
command
rpm -ql ipa-gothic-fonts ipa-pgothic-fonts | grep gothic
mv {インストールしたフォントのパス} /opt/libreoffice5.4/share/fonts/truetype/
⑥コンテナの再起動
コンテナを再起動すると配置したフォントが読み込まれるようになります。
※既にAlfrescoへアップロードしたファイルについては、文字化けしたままとなるので注意してください。
command
exit ← libreofficeコンテナからログアウト
docker-compose down
docker-compose up -d