含まれていない TrueType フォント (cups/lpr) を使用した PDF 印刷

含まれていない TrueType フォント (cups/lpr) を使用した PDF 印刷

TrueTypeフォントを使用するPDFがありますが、OCRBフォントは含まれていません。

だから私のシステム(SLES11 SP2)にフォントをインストールしようとしました:

  • GNOMEデスクトップでフォントをダブルクリックし、インストールをクリックします。
  • /user/home/username/.fontsフォルダにコピー
  • にコピー/usr/share/fonts
  • ルート化:SuSEconfig --module fonts
  • fc-cache

次のコマンドを使用して.pdfを印刷しようとすると:

lpr -PHL2400Ce -# 1 test.pdf

.pdfは正しく印刷されますが、OCRBフォントは消えて標準フォントに置き換えられます。

evinceただし、(gnome Document Viewer)を使用して.pdfを開くと、OCRBビューアにフォントが正しく表示され、同じプリンタを使用して印刷すると、フォントはそのままで完全に正確になります.

evinceこれもどんな方法でも使われているようで理解できませんか?lpr何ができるのか、どんなアイデアがありますか? (バックグラウンドで実行されるバッチジョブの一部であるため、コマンドラインから.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

だからここに見えるのは、メッセージがなくてもgs置き換えられるということですHelvetica。理由をご存知ですか?OCRBCan't find or can't open font...Arial-Bold

答え1

また、プリンターレンダラーにフォントを追加する必要があります。プリンタレンダラーフォントライブラリの正しいフォルダを見つけるのは難しいですが、すべてのCUPS / Ghostscript / lpr設定を見ると場所を見つけることができます。フォントを再インデックスする必要があり、CUPSとGSの両方にそのためのスクリプトがあります。

Evinceがそのようにうまく印刷される理由は、少し強制すると、基本的にすべてをベクトルにプリレンダリングするように指示するためです。

これはやや不必要に複雑です。主に、これらのモジュール部品が別々に生まれ、システムレベルで発生する融合が最近起こったためです。

Appleは内部的にCUPSを使用し、フォントインストールの問題を何とか解決しました。詳細は確認されていませんが、デフォルトでは中央システム全体のフォントライブラリを使用するか、フォントをGUIおよびCUPSフォントパスにコピーします。私の考えでは、コピーするのではなく、共通のフォントパスをサポートするようにソフトウェアを変更したようです。

関連情報