こんにちは。流れのプリンター愛好家こと、おがさわらなるひこと申します。プリンターのことしか分からない変わり者ですが、どうぞよろしくお願いします。
新年度も始まり、新しい環境での生活をスタートされた方も多いかと思います。配属先や研究室などで楽しいUbuntu生活を送るためには、所属先にあるいろいろな機器、例えばプリンターなどを使えるようにしたいですよね。ということで今回は、みんなで共有しているプリンターにUbuntuから印刷をするための方法を簡単に紹介するために、Recipeを寄稿させていただきました。
用語の確認
Ubuntuの印刷システムがCUPSというソフトウェアを中心にしているのは、みなさまもご存知かと思います。ここで詳しくは説明はしませんが、次のことを抑えておきましょう。
CUPSベースの印刷システムはAdobe社のPostScriptやPDFを内部データとして使っている
CUPSはそれぞれのプリンターごとに、「 PPD」と「印刷データフィルター」の組を管理している。あわせてプリンタードライバーと呼ぶ(こともある)
PPDとはプリンターごとに、印刷について設定する項目と、それぞれの項目の選択肢を記述するファイル
印刷データフィルターはCUPSの内部データから、プリンターが解釈することができる画像を示すデータ(PDL)に変換するモジュール
システムメニューから表示される「プリンター」は、system-config-printer(通称SCP)という名前のプログラムです。プリンターを追加したり設定したりするときにはSCPを活用することになります。
図1 システムメニューの「プリンター」
図2 system-config-printerを起動した画面
それから、ちょっとややこしいのですが、先に述べた「PPD」と「印刷データフィルター」の組である「プリンタードライバー」というソフトウェアをインストールすることと、それらを使ってプリンターを利用できるようにすることは、厳密にいえば異なる操作です。本稿では前者を「ドライバーのインストール」 、後者を「プリンターの追加」と呼びます。
プリンター管理ポリシーの確認
組織によっては、特に大学や大きな企業では、プリンターについて特別なポリシーが存在する場合があります。その点について、まずはネットワーク管理者や先輩などに確認しておきましょう。
とりわけよくあるのが、印刷する際に個別のユーザー識別子をデータに付与し、それにひもづける形で印刷枚数に制限をかけたり、部門課金を行ったりするようなケースです。このようなデータ付与を行える環境は、Windowsに限定されていることも多いでしょう。このような場合、残念ながら Ubuntuから直接印刷することは難しい[1] ですが、WindowsやMac OS Xを中継することは可能です。Ubuntuに用意されているCUPS-PDFというパッケージを用いれば、印刷する代わりにPDFとしてファイルに落とすことができるので、これをWindowsやMacで印刷するのがお手軽でしょう。
そうでなくて、Windowsなどでも単純にネットワークプリンターとして共有しているなら、Ubuntuから直接利用することができます。接続方法として、プリントサーバーを経由する方式なのか、ネットワークプリンターとして直接接続する方式なのかも聞いておきましょう。
[1] 非常に頑張ればできないわけではないですが、対応は個別的に過ぎますし、かなり複雑になります。PPDの文法とfoomatic-ripというモジュールを理解し、Windowsプリンタードライバーからの出力結果を調べてそれと同じ出力が得られるようにPPDを書く、ということになります。本稿では説明を省略しますが、ガッツがある人はチャレンジしてみてください。
プリンターのメーカーと機器名称からサポート状況の確認
次に、所属先のプリンターのメーカーと機器名称を確認します。だいたいの場合は筐体に明記されているのですぐわかるはずです。分からない場合はすでに用意されているWindowsのドライバーを確認するなどの方法もあります。
メーカーのホームページを開き、メーカー自身がUbuntuをサポートしているかどうかを調べましょう。ドライバーのダウンロードページから「Linux用」などで探せるはずですが、メーカーによっては違うところに置いてある場合もあります。サイト内検索で「linux」を探すなども試してみましょう。
少し注意が必要なのは、ヒューレット・パッカード (以下HP) の製品です。HPの場合、専用の印刷システムHPLIP というプロジェクトは、HPはスポンサーしているけれども独立なプロジェクトという位置づけです。そのためメーカーのサイトではなく、HPLIPのサポートプリンター情報 のページを見なければなりません。なお、HPLIPの印刷に必要なモジュールはUbuntuに標準で含まれていますので、インストールの必要はありません。
それぞれのドライバーパッケージのインストール方法は異なるので、本稿で説明は行いません。パッケージによっては専用のインストーラが用意されており、ドライバーのインストールとプリンターの追加を一度に行うものもあります。またパッケージが昔に作られた場合など、新しいUbuntuだとインストールが素直には上手く行かなかったりすることもあります。導入マニュアルなどを確認した上で、インターネットなどで情報を収集するようにしましょう。
OpenPrintingのPPDを使う
メーカーがドライバーを供給していない場合でも、プリンターによってはUnix系印刷の標準化団体OpenPrinting がOpenPrinting Database で配布しているPPDを用いることができます。このデータベースは、ある条件[2] が整っていれば利用できるPPDを誰でも登録できるサイトです。OpenPrinting DatabaseのPPDはUbuntuにはopenprinting-ppdsというパッケージに収録され標準でインストールされていますので、特別なインストールなしで利用できます[3] 。
印刷データフィルターが不要なPostScript搭載プリンターについては数多く収録されていますので、プリンターがPostScriptあるいはその互換処理系[4] を搭載している場合、Ubuntu標準で用意されているPPDから「製造元」を頼りに探してみるとよいでしょう。実際の例については次項で説明します。
そのプリンター専用のPPDが存在しない場合でも、「 どのプリンターでもだいたい持っているだろう指定だけを有効にしたPPD」 、すなわち「Generic PPD」も用意されています。PostScript以外についても、次の表に示すPDLもやはりGeneric PPDが用意されています。
メーカーなど PDL名 SCPの「製造元」 SCPの「モデル」 SCPの「ドライバー」
海外系の多くのプリンター PCL 6 (モノクロ機) Generic PCL 6/PCL XL Generic PCL 6/PCL XL Printer Foomatic/pxlmono [en]
PCL 6 (カラー機) Generic PCL 6/PCL XL Printer Foomatic/pxlcolor [en]
キヤノン LIPS IV/V(LXは対象外) Canon LIPS IV Canon LIPS-IVv Foomatic/lips4v [en]
エプソン ESC/Page Epson LP-xx00 Epson LP-xx00 Foomatic/escpage [en]
リコー RPDL Ricoh RPDL IV Laser Ricoh RPDL IV Laser Printer Foomatic/rpdl [en]
これらのPDLはプリンターによってオプションのときもあるため、プリンターの管理者に尋ねるか、あるいは「サマリシート」と呼ばれるプリンター自体のテスト印刷機能を用いることで確認しましょう。Generic PPDは「どの機種でもそこそこ遣える」ことが目標なので、専用のドライバーやPPDがある場合はそちらを使うほうがよいですが、とにかく印刷したいという場合には試す価値があります。
[2] 印刷システムCUPS、PostScriptインタプリタGhostscript、制御データ加工フィルターfoomatic、フリーのプリンタードライバーgutenprintの組み合わせをサポートしている環境です。
実際にネットワークプリンターに接続してみる
さて、実際にネットワークプリンターに接続してみましょう。接続形態としては、ネットワークプリンターとして直接接続することを想定します。家庭用の無線LANプリンターなどであればプリンターをDHCPなどで管理すると思いますが、共用プリンターの場合は固定IPで運用されていることが多いはずです。そこで、IPアドレスがあらかじめわかっている場合の作業を見ていきましょう。ここでは、192.168.1.100にリコーのimagio MP C4500 が接続されているものとします。
まずは、システムメニューからSCPを起動し、図2の左上にある「追加」ボタンを押します。
図3 SCPの「追加」ボタン
するとプリンターのURIを指定する画面が表示されるので、「 ネットワークプリンター」をクリックして選択肢を展開し、「 AppSocket/JetDirect」( 注5 )を選択して、「 ホスト名」のところにプリンターのIPアドレスを入力します。ポート名はデフォルトの9100のままで普通は構いません。入力が終わったら「進む(F)」を押します。
図4 AppSocket/JetDirectによるプリンターの設定
プリンターの電源が入っていて通信が可能な場合、CUPS/SCPはプリンターと通信してメーカー名と機器の名称を取得し、「 その名称に近いPPDを自動で選ぶ」機能を持っています。プリンタードライバーが導入済の場合(例えばHPのプリンターの場合は標準でHPLIPパッケージが導入済) はPPDの選択画面すら表示されませんが、「 メーカーに一致するものがあって」「 機器名称が近いもの」がある場合は、メーカー名を選択する画面がまず表示されます。
図5 PPDの「製造元」が自動的に選択された画面
「Ricoh」なので「進む(F)」を押すと、似た名前の「Aficio MP C4500」が選択されます。これはimagio MP C4500の海外版です(海外版の製品ページ ) 。
図6 自動で選択されたPPD。この場合は名前が近い海外機のPPDが選ばれている
しかし、海外機(Aficio MP C4500)と国内機(imagio MP C4500)は仕様が同じではなく、海外機では搭載されているPCL 6は国内機では搭載されていません。また、PostScriptも国内機ではオプションです。お使いのプリンターがオプションのPostScriptやPCL 6を導入していない場合は、先に示したRPDL IVのGeneric PPDを選びましょう[6] 。
図7 リコーのGeneric PPDであるRPDL IV Laserを選ぶ
「進む(F)」を押すとプリンター名称を自由につけられる画面になるので、わかりやすく名称、コメント、場所などを入力して「適用(A)」を押してインストール完了です。
図8 名前などをつける
終わったらテスト印刷をしてみましょう。RPDLはカラーに対応していないのでモノクロ印刷だけになってしまいますが、印刷できないよりはずっといいですね。
プリントサーバー経由の場合は、図4で選択する接続形式と、設定内容が若干異なります。Windowsサーバーの場合は、図4で「Samba経由のWindowsプリンター」を選択します。MacやLinuxがサーバーになっている場合は「ネットワークプリンターを検索」を選び、サーバーのアドレスを入力します。詳しくは管理者に確認してみましょう。
[5] HPがJetDirectというプリンター用通信カード/外部ボックス向け商品で初めて登場した印刷データの転送方式です。TCPの9100番ポートにデータを送るだけという非常に単純な方式で、Windows 2000から標準で用意されるようになったため広く普及しています。
おわりに
いかがでしたか? 共有プリンターはUbuntuからの印刷を考慮して選ばれているとは限らないため、ちょっとひと手間必要なこともありますが、コツさえ分かってしまえば「ただ印刷するだけ」という用途ならなんとかなることも多いのです。新しい所属先での楽しいUbuntuライフのために、ぜひ所属先のプリンターを活用してみましょう。