TrueTypeフォントOCRB
が使用されているPDF)がありますが、フォントは埋め込まれていません。
そこで、システムにフォントをインストールしようとしました(ちなみに、SLES11 SP2です)。次のことを行いました。
/user/home/username/.fonts
フォルダーにコピーしました/usr/share/fonts
にコピーしましたSuSEconfig --module fonts
fc-cache
次のコマンドで.pdfを印刷しようとすると:
lpr -PHL2400Ce -# 1 test.pdf
.pdfは問題なく印刷されますが、OCRB
フォントはなくなり、標準のフォントに置き換えられます。
ただし、.pdfをevince
(gnomeドキュメントビューア)で開くと、ビューアにOCRB
フォントが表示され(正しい)、印刷すると(同じプリンタで)、そこに表示されます。絶対に正しい。
evince
も何らかの方法でlpr
を使用していると思うので、これはわかりません。私にできることはありますか? (.pdfはバックグラウンドで実行されるバッチジョブの一部になるため、コマンドラインから.pdfを印刷できることは私にとって非常に重要です)
私はまた、このようないくつかのアプローチを試しました:
gs -dSAFER -dNOPLATFONTS -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sPAPERSIZE=letter -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -dCompatibilityLevel=1.4 -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true -sOutputFile=output2.pdf -f test.pdf
これは私に出力をもたらします:
....
Can't find (or can't open) font file Arial-BoldMT.
Didn't find this font on the system!
Substituting font Helvetica-Bold for Arial-BoldMT.
Substituting font Helvetica for OCRB
つまり、ここで私が見ているのは、Can't find or can't open font...
のようにメッセージArial-Bold
がない場合でも、gs
がHelvetica
の代わりにOCRB
を使用するということです。理由は何ですか?
プリンターレンダラーにもフォントを追加する必要があります。プリンターレンダラーフォントライブラリの正しいフォルダーを見つけるのは難しいですが、CUPS/Ghostscript/lpr構成のすべてを調べるとその場所が見つかります。フォントのインデックスの再作成が必要な場合があり、CUPSとGSの両方にそのためのスクリプトがあります。
Evinceがそれをうまく印刷した理由は、わずかな強制で、基本的にすべてのものをベクトルとして事前レンダリングするように指示したためです。
これは少し不必要に複雑です。これは主に、これらのモジュラーパーツが別々に生まれ、システムレベルで発生する収束が最近発生したためです。
Appleは内部でCUPSを使用しており、フォントのインストールの問題をなんとか解決しました。詳細は確認していませんが、基本的にはシステム全体の中央フォントライブラリを使用するか、フォントをGUIとCUPSの両方のフォントパスにコピーします。彼らはコピーしないと思いますが、共通のフォントパスをサポートするようにソフトウェアを変更しました。