イメージファイルのCUPSコマンドライン印刷の制限

イメージファイルのCUPSコマンドライン印刷の制限

デフォルトのプリンタを設定しましたlpoptions -d HP_ENVY_5530_series。一部のテキストを印刷できます。

echo HELLO > h.txt
lp h.txt

CUPSは、テキスト、PostScript、PDF、画像ファイルなど、さまざまな種類のファイルを直接認識します。

携帯用ネットワークグラフィックを印刷できます: lp Gnome2.26-printing-dialogue.png

スケーラブルなベクターグラフィック:lp Cups_simple.svg- あまり使用されていない内部テキストコンテンツで印刷します。

スキャンしたJPEG:lp 022.jpg- 「印刷用の画像ファイルを開けません!」を停止します。 ImageMagick-を使用してPNGに変換するとconvert 022.jpg 022.png印刷できますlp 022.png

lpCUPSコマンドのこれらの制限を理解したいと思います。

ベストアンサー1

CUPSにフィルタリングメカニズム入力フォーマットを検出し、それを組み込みフォーマット(PostScriptまたはラスターイメージ)に変換します。

CUPSにはファイル名データベースがありますマジックナンバー(コマンドで使用されているものとは異なりますが、file同様の目的を提供し、同様の原則に従って機能します)。このデータベースを使用して、入力形式と組み込み形式の間の変換チェーンを構築します。

データベースはArch LinuxとUbuntuにあります/usr/share/cups/mime/。他のディストリビューションでは異なるパスを使用できます。

CUPSが入力形式を認識しない場合は、フィルタ設定に応じてテキストを許可したり印刷を拒否したりできます。フィルタでapplication/octet-stream次の項目のみを含む行を見つけます。存在する場合、認識できない入力はプリンタに渡され、それ以外の場合は印刷できないと拒否されます。

テキストのように見える入力(SVGなど)は、合理的な設定でテキストとして印刷されます。インストール時にSVG形式が定義されていない場合、SVGは特定の汎用テキスト規則に従って認識されたまま印刷されます。

フィルタを書くための良いドキュメントがあります。スセウィキ

少なくともインストールする必要があります。カップフィルターパック(以前はAppleから提供され、CUPS自体に含まれており、現在はOpenPrintingによって維持されています。)Archにはパッケージがあります。これにはJPEG用のフィルタが含まれていますが、SVG用のフィルタは含まれていません。

おすすめ記事