Linuxで印刷という行為をすることも徐々に増えてきているだろう。ただし、Linuxは印刷のシステムをそれ自身で持っているわけではない。
このページではLinuxでの印刷の仕組みについてお伝えした。参考にしてほしい。
目次
Linuxでの印刷
現在一般的なLinuxディストリビューションもしくは、モダンなUnixLikeSystemではCUPSを使用してプリンタを設定、印刷することになる。
CUPSはUnixLikeSystemに対して「プリンタの認識と印刷システムの強力な基盤」を提供している。
そもそもLinux自身は印刷システムを持ち合わせているわけではないので、別途CUPSを導入し、プリンタを認識、設定、印刷することになる。
CUPS登場以前はWindowsと比べると、お世辞にも「プリンタをシームレスに扱えるシステム」とはいいがたい状態であった。CUPSの普及により印刷環境は劇的に改善されている。
CUPSについて
「CUPS」(CommonUnixPrintingSystem)(通称:カップス)はUnixLikeSystemに「共通の印刷システム基盤」を構築するために作成された。
現在Apple社がオープンソースとして開発している。ローカルホストに接続されたUSBプリンタを始め、ネットワーク上に存在するプリンタも検出してくれる。
CUPSは「印刷スプーラおよびスケジューラ」(キューの管理など、IPP)「フィルタシステム」(ドライバまわり,PPD)「バックエンド・システム」(プリンタへ情報を送信)この3つのシステムからなりたっている。ほかWebベースのGUIユーティリティ、サードパーティなGUIユーティリティが存在する。
IPP(InternetPrintingProtocol)
IPPは、ネットワーク上のプリンタとやりとりするためのプロトコルとして、代表的なものだ。印刷ジョブ、キューを取り扱う基盤として使用される。比較的あたらしいプロトコルである。
PPD(PostScript Printer Description)
Windowsでいうところのプリンタドライバに近いものだが、厳密にはPostScript形式を理解出来るプリンタへのプリンタ定義ファイルである。このプリンタは、両面印刷ができるか?フォントの種類はどういったものなのか?などが記述されるファイルである。
印刷までの流れ
- ユーザがプリントの依頼をする
- スケジューラに依頼がもちこまれ、キューになげこまれる
- ポストスクリプトドライバとPPDや、GhostScriptによりプリンタが解釈できるものに変換される
- バックエンドへ情報がひきわたされ、プリンタへ情報がわたされる
- 印刷がなされ、完了となる
Postscript(ポストスクリプト)について
PostScriptは、アドビシステムズが開発しているページ記述言語である。プリンタが解釈できるプログラム言語と思えばよい。
コンピュータ黎明期、アップルのプリンタ(コンピュータとプリンタが合体したようなもの)の上で走る印刷用のインタプリタ言語として使用されていた。
昨今はレーザプリンタなどで採用されている事例が多い、またポストスクリプトを解釈できるプリンタを「PSプリンタ」とよぶことがある。
GhostScript(ゴーストスクリプト)について
Ghostscriptはページ記述言語用のインタプリタであるPostScriptファイルを、ラスター画像に変換するツール群であり、ラスター画像に変換したものをプリンタに送ることで、ポストスクリプトに対応していないプリンタでもlpdやCUPSなどでプリンタを使用することができる。
PostScriptを解釈できないプリンタで印刷するときは十中八九このGhostScriptごしに印刷することになる。
プリンタの設定と印刷コマンド
プリンタの設定と印刷コマンドは下記ページで詳しく解説している。
まとめ
このページではLinuxの印刷の仕組みについてお伝えをした。
CUPSにより大分使いやすくなっている。仕組みまで覚えておく必要がない部分もあるが、こういう話は知っておいて損はない。ざっくりと把握しておこう。