18 xpdf (日本語の設定と周辺ツール)

PDFのビューアーである xpdf は高性能というわけでもないが、 X11 のクライアントなので、リモートマシンの PDF を見ることが出来て、 重宝して来た。

sudo port install xpdf-japanese +autoactivate


xpdf に pdftotext というツールが付属しているのを知った。 これを使うと PDF ファイルからテキスト・データを抽出できる。
pdftotext なんとか.pdf かんとか.txt
(実はコマンド名は xpdf-pdftotext である。)
これは便利かもしれない。 これまで度々、何段階にも分けてコピー&ペースト、というのをやってきたので。


それで久しぶりに xpdf を使ってみて、 表示できない PDF があることに気づいた。 フォント周りの設定が壊れている。


設定ファイルのサンプルには、kochi フォントを使うようになっていたので、 それを試して見る (まあ、最近はフォント埋め込みされた PDF ファイルも増えて来たけれど)。

kochi フォントは MacPorts で簡単にインストール出来る。
sudo port install kochi-substitute
こうすると /opt/local/share/fonts/kochi-substitue という ディレクトリィにフォントのファイルが置かれるので、 これを有効にするには、 /opt/local/etc/xpdfrc の末尾付近に次の1行を加えると良い。
fontFile	Adobe-Japan1	/opt/local/share/fonts/kochi-substitute/kochi-mincho-subst.ttf

% diff /opt/local/etc/{xpdfrc.org,xpdfrc}
99a100,101
> #fontFile	Adobe-Japan1	/usr/local/texlive/texmf-local/fonts/truetype/cjk-gs-integrate/ipaexg.ttf
> fontFile	Adobe-Japan1	/opt/local/share/fonts/kochi-substitute/kochi-mincho-subst.ttf

Ryumin-Light-某, GothicBBB-Medium-某 という名前のフォントを 使うようになっている PDF ファイルも多い。 これらを表示するためには、例えば以下のような設定を追加する。
fontFile   Ryumin-Light                    "/opt/local/share/fonts/kochi-substitute/kochi-mincho-subst.ttf"
fontFile   Ryumin-Light-H                  "/opt/local/share/fonts/kochi-substitute/kochi-mincho-subst.ttf"
fontFile   Ryumin-Light-V                  "/opt/local/share/fonts/kochi-substitute/kochi-mincho-subst.ttf"
fontFile   Ryumin-Light-Identity           "/opt/local/share/fonts/kochi-substitute/kochi-mincho-subst.ttf"
fontFile   Ryumin-Light-Identity-H         "/opt/local/share/fonts/kochi-substitute/kochi-mincho-subst.ttf"
fontFile   Ryumin-Light-Identity-V         "/opt/local/share/fonts/kochi-substitute/kochi-mincho-subst.ttf"
fontFile   HeiseiMin-W3H                   "/opt/local/share/fonts/kochi-substitute/kochi-mincho-subst.ttf"
fontFile   FutoMinA101-Bold                "/opt/local/share/fonts/kochi-substitute/kochi-mincho-subst.ttf"
fontFile   FutoMinA101-Bold-H              "/opt/local/share/fonts/kochi-substitute/kochi-mincho-subst.ttf"
fontFile   FutoMinA101-Bold-V              "/opt/local/share/fonts/kochi-substitute/kochi-mincho-subst.ttf"
fontFile   GothicBBB-Medium                "/opt/local/share/fonts/kochi-substitute/kochi-gothic-subst.ttf"
fontFile   GothicBBB-Medium-H              "/opt/local/share/fonts/kochi-substitute/kochi-gothic-subst.ttf"
fontFile   GothicBBB-Medium-V              "/opt/local/share/fonts/kochi-substitute/kochi-gothic-subst.ttf"
fontFile   GothicBBB-Medium-Identity       "/opt/local/share/fonts/kochi-substitute/kochi-gothic-subst.ttf"
fontFile   GothicBBB-Medium-Identity-H     "/opt/local/share/fonts/kochi-substitute/kochi-gothic-subst.ttf"
fontFile   GothicBBB-Medium-Identity-V     "/opt/local/share/fonts/kochi-substitute/kochi-gothic-subst.ttf"
fontFile   HeiseiKakuGo-W5H                "/opt/local/share/fonts/kochi-substitute/kochi-gothic-subst.ttf"
fontFile   FutoGoB101-Bold                 "/opt/local/share/fonts/kochi-substitute/kochi-gothic-subst.ttf"
fontFile   FutoGoB101-Bold-H               "/opt/local/share/fonts/kochi-substitute/kochi-gothic-subst.ttf"
fontFile   FutoGoB101-Bold-V               "/opt/local/share/fonts/kochi-substitute/kochi-gothic-subst.ttf"
fontFile   MS-Gothic               "/opt/local/share/fonts/kochi-substitute/kochi-gothic-subst.ttf"
fontFile   MS-PGothic              "/opt/local/share/fonts/kochi-substitute/kochi-gothic-subst.ttf"
fontFile   MS-Mincho               "/opt/local/share/fonts/kochi-substitute/kochi-mincho-subst.ttf"
fontFile   MS-PMincho              "/opt/local/share/fonts/kochi-substitute/kochi-mincho-subst.ttf"
fontFile   HGSoeiKakugothicUB              "/opt/local/share/fonts/kochi-substitute/kochi-gothic-subst.ttf"
fontFile   HeiseiMin-W3-Identity-H         "/opt/local/share/fonts/kochi-substitute/kochi-mincho-subst.ttf"
fontFile   MSゴシック            "/opt/local/share/fonts/kochi-substitute/kochi-gothic-subst.ttf"
fontFile   MSゴシック,Bold               "/opt/local/share/fonts/kochi-substitute/kochi-gothic-subst.ttf"
fontFile   @MSゴシック,Bold              "/opt/local/share/fonts/kochi-substitute/kochi-gothic-subst.ttf"
fontFile   MSPゴシック          "/opt/local/share/fonts/kochi-substitute/kochi-gothic-subst.ttf"
fontFile   MS明朝                "/opt/local/share/fonts/kochi-substitute/kochi-mincho-subst.ttf"
fontFile   MS明朝,Bold           "/opt/local/share/fonts/kochi-substitute/kochi-mincho-subst.ttf"
#Japanese PDF resources

http://nalab.mind.meiji.ac.jp/~mk/20180818/xpdfrc に置いておく。

(2018/9/19) いつのまにかうまく表示できなくなっていることに気づいた。 日本語の設定部分は良いのだけれど、それ以外の設定部分が変わっていた。 http://nalab.mind.meiji.ac.jp/~mk/20180919/xpdfrc に置いておく。

色々書いたけれど、まとめると次の4コマンドを実行すれば良い。
sudo port install xpdf-japanese +autoactivate
sudo port install kochi-substitute
curl -O http://nalab.mind.meiji.ac.jp/~mk/20180919/xpdfrc
sudo cp -p xpdfrc /opt/local/etc


もちろん kochi でなくて、 /usr/local/texlive/texmf-local/fonts/truetype/ipaexg.ttf, /usr/local/texlive/texmf-local/fonts/truetype/ipaexm.ttf を使うことも出来る。


(設定ファイルについては、 ~/.xpdfrc があればそれを読む。 それがなければ /opt/local/etc/xpdfrc を読む。 追加にはならないんだ。コピーしてから書き換えるのが正しい?)


上の対応策はスマートでないと考えている (本当に長たらしいパスをたくさん書かないといけないの?)。 そのうち検討しよう。

フォントをいじっていて気がついたのだけど、 pdffonts というツールもある。 MacPorts で xpdf をインストールすると、 xpdf-pdffonts という名前でインストールされる (名前の衝突を避けるために xpdf- がつくのだとか)。

同じようなものが他にも色々ある。まとめておく。

pdffonts PDF のフォント情報を表示
pdfimages PDF から画像を抽出する
pdfinfo PDF の文書情報を表示
pdftops PDF を PostScript ファイルに変換
pdftotext PDF からテキストを抽出
pdftoppm PDF を PPM 画像形式に変換
pdfdetach PDF にアタッチされた部分をファイルとして抜き出すプログラム

別名定義 (bash用)
alias pdffonts=xpdf-pdffonts
alias pdfimages=xpdf-pdfimages
alias pdfinfo=xpdf-pdfinfo
alias pdftops=xpdf-pdftops
alias pdftotext=xpdf-pdftotext
alias pdftoppm=xpdf-pdftoppm
alias pdfdetach=xpdf-pdfdetach

Xpdf には、Poppler という派生ソフトもあるとのこと。 そちらの日本語対応はどうなっているのかな。


(2018/12/13) おや?
Syntax Error: Couldn't find a font for 'KozMinPro-Regular-Acro'
KozMinPro-Regular-Acro を検索すると色々出て来るが、目をつぶって
fontFile   KozMinPro-Regular-Acro           "/opt/local/share/fonts/kochi-substitute/kochi-mincho-subst.ttf"
と書き足したら表示できた。


(2021/2/26追記) http://nalab.min d.meiji.ac.jp/~mk/misc/20220226/xpdfrcというのを作った。 http://nalab .mind.meiji.ac.jp/~mk/knowhow-2021/node56.htmlを参照せよ。

sudo port install xpdf-japanese +autoactivate
sudo port install kochi-substitute
curl -O http://nalab.mind.meiji.ac.jp/~mk/20181213/xpdfrc
sudo cp -p xpdfrc /opt/local/etc

桂田 祐史
2020-04-05