LPIC 学習記録として
CUPS
Common Unix Printing System、カップス
UNIX 系 OS で使用される印刷システムで、印刷ジョブの管理やプリンターの設定を行うためのサーバーソフトウェアのこと。
クライアントアプリケーション上で実行されたユーザの印刷操作は、$ lpr や GUI ツールを通じて cupsd デーモン に ジョブ として送信され、CUPS はそれを適切なプリンタへ転送する。印刷ジョブは cupsd デーモンが キュー で管理する。
クライアントとサーバはネットワークを介して離れた場所にいても良い。
$ systemctl start cups
※ systemd
$ /etc/init.d/cups start
※ SysVinit
プリンタのドライバは、メーカから取得するか、もしくはフリーソフトとしてネット上で入手できる。
また、CUPS には Web ブラウザから設定を行うことのできるツールが内包されている。ツールには URL http://localhost:631 でアクセスする。
macOS で起動する場合、以下のコマンドを実行してからブラウザで URL を入力する。
$ sudo cupsctl WebInterface=yes
PostScript
Adobe 社が開発したページ記述言語(PDL: Page Description Language)。
テキストや図形の位置、サイズ、フォント、色などがコードで定義され、印刷データを表現するためのプログラミング言語として使用される。
プリンタは PostScript を読み取って、ページを描画する。正確で再現性の高い出力が可能。
Ghostscript
PostScript を解釈、処理するソフトウェア。
プリンタのドライバが内包されている。
具体的には、$ gs によって PostScript ファイルを画面に表示したり(ビューア)、PDF、PNG、JPEG などに変換したりすることができる。
また PostScript の インタプリタ としての能力も持っている。多くのプリンタは PostScript を直接解釈できないが、 Ghostscript によって PostScript をレンダリングし、プリンタ向けの形式に変換することができる。
Linux では CUPS + Ghostscript の構成によって、PostScript 非対応のプリンタでも印刷が可能となっている。
PPD
PostScript Printer Description
PostScript プリンタの機能、仕様を記述したファイル。
CUPS に対して「このプリンタは何ができるのか」を示すために使用される。
以下の情報が含まれる。
- プリンタ名
- メーカ / モデル情報
- 解像度
- 両面印刷対応
- 用紙サイズ
- カラーモード(モノクロ / カラー)
PPD ファイルは PostScript プリンタ以外でも利用されている。
最近の CUPS(特に macOS)では IPP Everywhere や AirPrint など、PPD を不要とする方式が増えている。これらの新しい方式では、プリンタ自身がどんな機能を持っているかを自己表現することができ、CUPS や OS がこれを自動で認識する。
/etc/cups/cupsd.conf
CUPS の動作全体(ポート、アクセス制御、ログ、ディレクトリ設定など)を定義する設定ファイル。
編集後は CUPS を再起動する必要がある。
$ sudo systemctl restart cups
$ sudo systemctl restart cups.service
$ sudo /etc/init.d/cups restart
/etc/cups/printers.conf
CUPS によって自動で生成・更新されるプリンタの設定ファイル。
プリンタ名、場所、デバイスURI、使用するドライバ(PPD)などが設定でき、デーモン の cupsd によって読み込まれる。
設定を変更したい場合は $ lpadmin コマンドや Webインターフェース(http://localhost:631)を使用する。
手動での編集は非推奨
$ lp
line printer
System V 系列で使用される。
ファイルや標準入力を印刷ジョブキューに送信する。
$ コマンド | lpr
$ lpr ファイル
$ lpr -d プリンタ名 -n 部数 ファイル
出力先を指定しない場合は、デフォルトプリンタが出力先になる。
$ lpr
line printer request
BSD 系列で使用される。
ファイルや標準入力を印刷ジョブキューに送信する。
$ コマンド | lpr
$ lpr ファイル
$ lpr -P プリンタ名 -#部数 ファイル
出力先を指定しない場合は、デフォルトプリンタが出力先になる。
$ lpq
line printer queue
印刷ジョブキューにあるジョブの状態を確認するためのコマンド。
$ lpq
$ lpq -P プリンタ名
$ lpq -a
$ lpstat
$ lpstat -o
$ lpstat -d
$ lpstat -p
$ lpstat -r
$ lpstat -t
$ lprm
line printer remove
$ lprm ジョブID
※ ジョブ ID は $ lpq で確認できる
$ lprm -
$ lpadmin
$ lpadmin オプション
| オプション | 説明 |
|---|---|
-p プリンタ名 |
プリンタ名を指定(printer) |
-d プリンタ名 |
デフォルトプリンタとして設定(default) |
-x プリンタ名 |
プリンタを削除 |
-v URI |
接続先を指定 |
-P PPDファイル |
使用する PPD ファイルを指定 |
-E |
プリンタを有効化(印刷受付状態になる、enable) |
