ここに書かれている方法は冗長です.最小限の方法は「Enscriptのトラブルの解決策」を参照してください.
内容
序
今まで動いていた自作のPerlスクリプトによるQSLカード記入面のデータ出力(enscript入力形式) から,enscript (PS=Postscript形式の出力)により印刷イメージのPSを生成する手順で,それぞれは動くのですが,出力されたPS形式のファイルをPDF化すると,どうしても等幅フォントCourierが文字抜けします.全部が出ないわけでなく,ざっと見て大文字だけかと思えばそうでもなく,また数字は “1” 以外全部抜けているようです.
解決策
Slackwareにおいては “Courier New” のTrue Typeフォント(TTF)をインストールするだけ.
もう少し厳密に言えば,enscriptに与えるフォント名を “Courier”, “Courier-Bold” などから, “Courier-New”, “Courier-New-Bold” などに変更する必要があります.
フリーのCourier Newフォントの取得
あちこちにありますが,Fonts Geekというサイトから,Courier NewとCourier New Boldをダウンロードしました(ついでにMonacoも).
Linuxのホストへのインストール
Slackware ARM 15.0のホストにTrue Typeフォントをインストールする手順を探してインストールします./usr/share/fonts/TTF
にコピーしてから,テーブルファイルをupdateするコマンドを実行するような方法だと思いましたが,そのとおりでした.
ダウンロードしたフォントのファイル名は, “Courier New Bold.ttf”などスペースが入っていますが, “Courier-New-Bold.ttf” のように,スペースをハイフンに変えました.また, “Regular” は削除しました.
Updateには,mkfontdir
とmkfontscale
コマンドを使います.
以上でこれまで通り,enscriptとps2pdfで正しい印刷イメージができます.
動作確認できたdistro
上記は,Slackware ARM (32bit) 15.0ですが,Slackware AArch64 currentでも確認できました.
その後,Raspberry Pi OS (64bit) + KDE Plasma Desktopの環境でも試してみました.Debian系で Courier New のTrue Typeフォントをインストールする正攻法は,
apt install ttf-mscorefonts-installer
のようです.これで,Slackware同様にenscriptに与えるフォント名を “Courier-New”, “Courier-New-Bold” などとすることで,正常なPDFができるようになりました.