Linux版Adobe Reader 9で日本語が表示できない問題の解決法

Linux版のadobe reader 9(旧 acrobat reader)では日本語が正しく表示できない場合があります。この不具合を、環境変数 ACRO_DISABLE_FONT_CONFIG を使って回避する方法を見つけたので、詳細をまとめます。

手順1) KozGoProVI-Medium.otf のインストール

まず KozGoProVI-Medium.otf というフォントファイルをインストールします

このファイルは adobe readerの8.1に含まれています。

ftp://ftp.adobe.com/pub/adobe/reader/unix/8.x/8.1.6/jpn/AdobeReader_jpn-8.1.6-1.i486.rpm をdownloadして

$ rpm2cpio  AdobeReader_jpn-8.1.6-1.i486.rpm | cpio -id

とすれば カレントディレクトリ以下に opt/Adobe/Reader8/Resource/CIDFont/KozGoProVI-Medium.otf としてフォントファイルが展開されます。

これを /opt/Adobe/Reader9/Resource/CIDFont/ へコピーします。

$ sudo cp KozGoProVI-Medium.otf  /opt/Adobe/Reader8/Resource/CIDFont/

手順2) 環境変数 ACRO_DISABLE_FONT_CONFIGの設定

多くの環境では、上記の手順1のみで、日本語表示が出来るようになります。ただし KozGoProVI-Medium.otf をインストールしても、以下の条件がそろうと日本語が表示できなくなります。
条件1) msgothic.ttc をインストールしている
条件2) 閲覧したいpdfが MSゴシックを利用しており、かつフォントを埋め込んでいない

このような場合は、環境変数 ACRO_DISABLE_FONT_CONFIG を1に設定すると、日本語が表示できるようになります。

$ env ACRO_DISABLE_FONT_CONFIG=1 acroread

firefox経由で pdf 等を見る場合もあるので、 ~/.bashrc に以下の一行を追加しておくと便利です。

$ export ACRO_DISABLE_FONT_CONFIG=1

解説

詳細は、/usr/bin/acroread にコメントが書いてありますが

$ strace -o /tmp/log  acroread  hogehoge.pdf

として/tmp/logを眺めると判るように、デフォルトで acroread は fontconfig 経由で ttc なフォントを検索しています。

straceの出力から想像すると、acroreadはpdfにmsゴシックが使用されている場合
a) システムにmsgothic.ttcがある場合は msgothic.ttc を使用
b) msgothic.ttc が無い場合は KozGoProVI-Medium.otf で代替
という処理を行うようです。

ところが adobe reader 9.1.2 には a) の処理に何らかのバグがあるようで、その結果日本語が正しく表示できないようです。そこで ACRO_DISABLE_FONT_CONFIG=1 とすることで a)の処理をskipする、というのが今回の回避方法になります。