デフォルトのプリンタを設定しています:lpoptions -d HP_ENVY_5530_series
。私はいくつかのテキストを印刷することができます:
echo HELLO > h.txt
lp h.txt
ポータブルネットワークグラフィックスを印刷できます:lp Gnome2.26-printing-dialogue.png
。
スケーラブルベクターグラフィックス:lp Cups_simple.svg
-内部テキストコンテンツとして出力しますが、あまり使用されません。
スキャンされたJPEG:lp 022.jpg
-「印刷用の画像ファイルを開くことができません!」が停止します。 ImageMagickでPNGに変換すると--convert 022.jpg 022.png
、それからそれを印刷することができますlp 022.png
。
CUPS lp
コマンドのこれらの制限について説明したいと思います。
CUPSには フィルターメカニズム があり、入力の形式を検出して、組み込み形式(PostScriptまたはラスターイメージ)に変換します。
CUPSには、ファイル名と マジックナンバー のデータベースがあります(file
コマンドで使用されるものとは異なりますが、同様の目的を果たし、同様の原則で動作します)。このデータベースを使用して、入力と組み込み形式の間の変換チェーンを構築します。
データベースは、ArchLinuxおよびUbuntuの/usr/share/cups/mime/
にあります。他のディストリビューションは別のパスを使用する場合があります。
CUPSが入力形式を認識しない場合、フィルターの設定方法に応じて、テキストを想定するか、印刷を拒否する可能性があります。フィルタにapplication/octet-stream
だけを含む行を探します(その後は何も含まれません)。存在する場合は、認識されない入力がプリンターに渡されます。存在しない場合は、印刷不能として拒否されます。
SVGなどのテキストのように見える入力は、任意の適切な構成でテキストとして出力されることに注意してください。インストールにSVG形式を定義するものがない場合、SVGは一般的なテキスト規則の下で認識され、そのまま印刷されます。
SuSE wiki にフィルターの作成に関する優れたドキュメントがいくつかあります。
少なくとも cups-filters package (以前はAppleで、CUPS自体に含まれ、現在はOpenPrintingによって維持されています)をインストールする必要があります。Archにはパッケージがあります。これには次のものが含まれます。 JPEGのフィルターですが、SVGのフィルターではありません。