Linuxの印刷システム

 UbuntuなどのLinuxを使い始めて印刷ができないと戸惑う人が多いようです。 Linuxの印刷システムはWindowsとは異なり、ドライバーのインストールなしにパソコンに接続しただけで印刷できることもあり、便利な反面、Windowsとの違いを理解せず印刷ができないと困惑する人も多いようです。まずは、Linuxの印刷システムを理解しましょう。
Linuxではプリンターが以下の場合ドライバーのインストールなしで印刷できます。
 ➀Postscript対応プリンター
 ②AirPrintやIPP Everywhereに対応プリンター Ubuntu17.04から導入
 ③CUPS (Common Unix Printing System)のデータベースに登録済のプリンター
上記に該当しないプリンターは、メーカーのサイトからLinux用のドライバーをダウンロード

Linuxにおける印刷のメカニズム

 Linuxは印刷用データとしてPostScriptを作成、PostScript対応プリンターで印刷できます。
 PostScript非対応の場合、CUPS(Common Unix Printing System)で行います。
 GhostScriptで印刷できるイメージ(ラスタ−データ)に変換して印刷。

 CUPSがインストール済みのOS(Ubuntuなど)、デフォルトでCUPSが入っていないOS(Raspbianなど)があります。
 後者はCUPSをインストールする必要があります。

Linux印刷
 

LinuxはCUPSという印刷システムで以下の3段階の過程で印刷します

  1.スケジューラー・スプーラ
   印刷データを収集・印刷ジョブの管理・監視
  2.フィルター
   印刷データをプリンターの状況に対応した印刷言語に変換、
    PostScript対応プリンターにはそのまま送り、プリンターで印刷データ(ラスタ−データ)に変換
    PostScript非対応プリンターにはGhostScriptで印刷できるラスタ−データに変換
    ラスタ−データはビットマップ形式のデータ
  3.バックエンド
   プリンターに印刷データを渡す

Ubuntu17.04からドライバレスプリントのAir PrintとIPP Everywhereに対応

Air Print:iOS(iPhone)で使っているドライバレス印刷システム
IPP Everywhere:Androidで使っているドライバレス印刷システム
 Ubuntu17.04をインストールしたパソコンにプリンター(図の例はBrother-DCP-N4215N)とインターネットに接続するとプリンターの制御画面にAirPrintのアイコンが表示され(右側のアイコン)、プリンターのドライバーをインストールすることなく印刷ができるようになります。 <インターネット接続が必須>

Airprint

Ubuntuを使うときのプリンター選び

プリンターがPostScript対応か、AirPrintかIPP Everywhereに対応しているか、あるいはCUPSのデータベースに登録されているれば、プリンターをつないだだけで(ドライバーのインストールなしに)印刷できます。

Airprint
*1 PostScriptプリンターは高価
*2 インターネット接続が必須 新発売のプリンターは対応しているものが多い
*3 中古プリンターはCUPSのデータベースにあることが多い
*4 新発売のプリンターはLinux対応が多くなった

Raspberry Pi(ラズパイ)を使う時の印刷

ラズパイ用のUbuntu MATEは、バージョンが16.04 LTSです。
従ってAirPrintとIPP Everywhereによるドライバレス印刷はできません。
プリントメーカーサイトで用意されているドライバーはCPUがパソコン用のi386対応で、
CPUがARMのラズパイにはインストールできません。
 ラズパイ用のUbuntu MATEの印刷は、CUPSに登録済みのプリンターでしかできないようです。       CUPSに登録済みのプリンターは、ラズパイにつなぐだけでドライバーのインストールなしで印刷できます。 PostScriptプリンターについては未検証。

Raspbian OSの印刷ではCUPSをインストールする必要があります。