DOES GNU/LINUX DREAM OF BORDERLESS PRINTING?

GNU/ Linux はふち なし 印刷 の夢を 見るか ？
Debian P roj ect 武藤 健志<kmut o@debian.or g>―東京エリ アDe bian 勉強会自己紹介 : Who is Kenshi Muto?
●

Debian Project 公式開発者(1999-)– 印刷システムチーム,インストーラ

チーム,翻訳,experimental buildd,...

Debian JP Project boardメンバ(2003会長, 2007-事務局長)●
本業は書籍編集者およびadmin●資料 はこ ちら●

東京エリアDebian勉強会●

日経Linux 2007年11月号

Ag en da●●●

Unix印刷環境の歴史
印刷システムCUPSの概要
Unix印刷環境の未来展望

Un ix 印刷の 歴史

誕生
●

●

Everything is aFile!
DOSなども成長と 派生
LPD (Line Printer Daemon)●
BSD LPR, System V LP, LPRng…ほか多数の亜流●涙ぐ まし い技術●Ghostscript●MagicFilter

噴出 する 問題
まともな認証がない…
●
セキュアなセッションを作れない…
●
入力データ形式からプリンタ形式への一貫した変換の流れがない…
●
プリンタ固有オプションを指定する方法が標準化されていない…
●

CUP Sは救世主 とな る、か ？
Common Unix Printing System●
ほとんどMichael Sweet氏の個人
プロダクト
http://www.cups.org/●
IPP (Internet PrintingProtocol)の本格的な実装●– IETF/Printing Working Group– HTTPレイヤーの上層に構築

CUP Sのgoo d! なとこ ろ●

LPDの課題への解– 認証,セキュアセッション,フィルタの一貫性,プリンタオプション●

BSD LPR / System V Lpとのコマンド互換性– LPDサーバの互換サーバも提供

CUP Sのgoo d! なとこ ろ(続き )Webインターフェイスでの管理●
プリンタの自動認識●
ライブラリを使った高度な操作●
etc...
●●

bad!なところについてはいずれ…

Deb ia nのパッケ ージ
cupsys, cupsys-common,libcupsys2, libcupsimage2●
cupsys-client, cupsys-bsd●
gs-esp, gs-cjk-resource,non­freecmap-adobe-japan1
non­free●cupsys-driver-gutenprint,linuxprinting.org-ppds,foomatic-filters-ppds,hpijsppds●

CU PS のアー キテ クチャ
バックエンド

フィルタ

USB

テキスト
→PostScript

パラレル

PDF→PostScript

SCSI

イメージ→PostScript

シリアル

PostScript→ラスター

Bluetooth

IPP / HTTP

LAN/WANcups-polldデーモン

inetd / xinetd

Web CGI

イメージ→ラスター

cups-lpdデーモン

System V互換
コマンド

ラスター→プリンタコード
スケジューラ
cupsd

ソケット
lpd

フロントエンド

BSD互換コマンド

GNOME / GTK+

cups-devicedデーモン

PPD
Samba

KDElibs

linuxprinting.org
cups-driverdデーモン

HPlip

hpijs-ppds

Canon / Epson

gutenprint

Iceweasel, Samba,,
OpenOffice.org,...

CUPS での プリン タ登 録(1)●https://localhost:631/

CUPS での プリン タ登 録(2)●

「管理」タブを開き、「このプリンタを追加」をクリック

CUPS での プリン タ登 録(3)●「モデル」でドライバを選択

CUPS での プリン タ登 録(4)●追加デキター！

CUPS での プリン タ登 録(5)●プリンタオプション設定に遷移CUPS での プリン タ登 録(6)●「プリンタ」タブを開き、「テストページの印刷」をクリック

CUPS での プリン タ登 録(7)●

テストページを印刷デキター！

自動 認識じ ゃな い場合 は？
●「管理」→「プリンタの追加」で名前、デバイス接続箇所、URIを登録。あとは自動のときと同じ– lpd://LPDサーバ/プリンタ名– ipp://IPPサーバ/プリンタ名– socket://JetDirectサーバ:ポート– smb://SMBサーバ/プリンタ名

コマンド ライ ンでの 印刷
lp -d プリンタ名 ファイル●
lpr -P プリンタ名 ファイル●

– 「-E」を付ければセキュアセッションにジョブ状況確認: lpstat, lpq●
ジョブキャンセル: cancel, lprm●
管理: lpadmin,lpmove,cupsaccept,
cupsreject, cupsenable,cupsdisable●アプ リケー ショ ンでの 印刷●

Iceweasel– 「CUPS/プリンタ名」でアクセス●

GTK+およびGNOMEアプリケーション– libgtkまたはlibgnomeprintで統一ダイアログ●KDEアプリケーション– kdelibsで統一ダイアログ

CU PS のアー キテ クチャ
バックエンドフィルタ

USB

テキスト→PostScript

パラレル

PDF→PostScript

SCSI

イメージ
→PostScript

シリアル

PostScript→ラスター

Bluetooth

IPP / HTTP

LAN/WANcups-polldデーモン

inetd / xinetd

Web CGI

イメージ→ラスター

cups-lpdデーモン

System V互換
コマンド

ラスター→プリンタコード
スケジューラ
cupsd

ソケット
lpd

フロントエンド

BSD互換コマンド

GNOME / GTK+

cups-devicedデーモン

PPD
Samba

KDElibs

linuxprinting.org
cups-driverdデーモン

HPlip

hpijs-ppds

Canon / Epson

gutenprint

Iceweasel, Samba,,
OpenOffice.org,...

スケ ジュー ラ(cup sd )●IPPサーバ– localhost

TCP/631,/var/run/cups/cups.sock

ジョブ制御●
アクセス制御●ロギング●
ブラウジング●– UDP/631

CU PS のアー キテ クチャ
バックエンド

フィルタ

USB

テキスト
→PostScript

パラレル

PDF→PostScript

SCSI

イメージ
→PostScript

シリアル

PostScript→ラスター

Bluetooth

IPP / HTTP

LAN/WANcups-polldデーモン

inetd / xinetd

Web CGI

イメージ→ラスター

cups-lpdデーモン

System V互換
コマンド

ラスター
→プリンタコード
スケジューラ
cupsd

ソケット
lpd

フロントエンド

BSD互換コマンド

GNOME / GTK+

cups-devicedデーモン

PPD
Samba

KDElibs

linuxprinting.org
cups-driverdデーモン

HPlip

hpijs-ppds

Canon / Epson

gutenprint

Iceweasel, Samba,,
OpenOffice.org,
...

PPD
PostScript Printer Description●
プリンタの機能・能力を記述●拡張したCUPS-PPD●*PPD-Adobe: “4.3”*% PPD file for CUPS/Gutenprint.
*%*FormatVersion: “4.3”*FileVersion: “5.0.1”*LanguageVersion: English*LanguageEncoding: ISOLatin1*PCFileName “STP00818.PPD”*Manufacturer: “Canon”*Product: “(AFPL Ghostscript)”

CU PS のアー キテ クチャ
バックエンドフィルタ

USB

テキスト→PostScript

パラレル

PDF→PostScript

SCSI

イメージ
→PostScript

シリアル

PostScript→ラスター

Bluetooth

IPP / HTTP

LAN/WANcups-polldデーモン

inetd / xinetd

Web CGI

イメージ→ラスター

cups-lpdデーモン

System V互換コマンド

ラスター→プリンタコード
スケジューラ
cupsd

ソケット
lpd

フロントエンド

BSD互換コマンド

GNOME / GTK+

cups-devicedデーモン

PPD
Samba

KDElibs

linuxprinting.org
cups-driverdデーモン

HPlip

hpijs-ppds

Canon / Epson

gutenprint

Iceweasel, Samba,,
OpenOffice.org,...

フィル タ[目標]バックエンドにそのまま渡せるデータを出力する●
MIME、magic、コスト●

フィル タの 例(1 )●PostScriptの入力
紙サイズ、マージンなど
PostScript

application/postscript

pstopsPostScript(加工済み)
application/
vnd.cups-postscript

MIMEタイプとMagicによる検証●
pstopsでプリンタオプションを反映●

フィル タの 例(2 )●PostScriptからプリンタへ*cupsFilter

PostScript(加工済み)
pstoraster
application/
vnd.cups-postscript

ラスター
イメージ

application/
vnd.cups-rasterfoomatic-rip
rasterto
gutenprint
rasterto
epson
rasterto
hp

バックエンドフィル タの 例(3 )●その他の形式テキスト

texttops

PostScript

imagetops

PostScript

imagetorasterラスター
イメージ

text/*
ビットマップimage/*

CU PS のアー キテ クチャ
バックエンド

フィルタ

USB

テキスト
→PostScript

パラレル

PDF→PostScript

SCSI

イメージ
→PostScript

シリアル

PostScript→ラスター

Bluetooth

IPP / HTTP

LAN/WANcups-polldデーモン

inetd / xinetd

Web CGI

イメージ→ラスター

cups-lpdデーモン

System V互換
コマンド

ラスター
→プリンタコード
スケジューラ
cupsd

ソケット
lpd

フロントエンド

BSD互換コマンド

GNOME / GTK+

cups-devicedデーモン

PPD
Samba

KDElibs

linuxprinting.orgcups-driverdデーモン

HPlip

hpijs-ppds

Canon / Epson

gutenprint

Iceweasel, Samba,,
OpenOffice.org,...

バッ クエ ンド
変換済みのデータをプリンタに送付●
プリンタとのインタラクション●

おさら いユーザアプリケーションが印刷データをスケジューラに POST●
（許可された権限なら）スケジューラが受け付け、ジョブとする●
スケジューラは、 PPD を見て、プリンタの要求する形式までジョブをフィルタにかける●
スケジューラは、最終的なジョブのデータをバックエンドに送付●
バックエンドがプリンタとやり取りして印刷●

Un ix 印刷の 将来 展望

Op en Pri nt ing 方面 の動き●

OpenPrinting Working Group– http://www.linuxfoundation.org/

en/OpenPrinting

Foomatic database●
OPV (OpenPrinting Vector)●Printer Channel Manager●

Un ix 印刷の (暗めな )将来展望
テスト環境●
Binary Blobsと企業秘密●
まだGhostscript? PDF?
●non-freeの壁●

我々は 何を成 して いくべ きか ？

まと め
旧来のLPD系のシステムには、超えられない壁があった●
CUPSの登場で、Unix/Linuxの印刷環境は大きな進展を遂げた●
しかし、PPDやフィルタの充実、プリンタベンダからのより良い協力など、残されている課題は多い●
GNU/Linuxはふちなし印刷の夢を見るか？
●

資料は こちら (再)●東京エリアDebian勉強会●

日経Linux 2007年11月号

Cop yri gh t
Background picture: rammag, stock.xchng license
gnu: pedro prats, Creative Commons Attribution-Noncommercial-ShareAlike License
Pencil: vierdrie, stock.xchng license
evolution: latvian, Creative Commons Attribution License
trilobita: kevinzim, Creative Commons Attribution License
saurus: a2gamma, Creative Commons Attribution License
President Nixon, Elliot Richardson, and FBI Director-Designate Clarence M. Kelly, 1973: WhiteHouse Photo Office Collection, Public Domainangel: Jon Sulivan, Public Domain
clock: Lukas, Creative Commons Attribute License
cafe: Saxon, Creative Commons Attribute License
crystal: bb_matt, Creative Commons Attribute License
escalator: a2gamma, Creative Commons Attribution License

All other contents: Kenshi Muto, 2007, Creative Commons Attribution License