NetBSDからcups経由で印刷する (3/3)

これは、NetBSD Advent Calendar 2020の6日目の記事です。

はじめに

PDFファイル出力をする仮想プリンター、PostScriptプリンターをcupsから使う方法を 説明して来ました。 今日は、IPP Everwhere対応のEPSON EW-M752Tというカラーインクジェットプリンターを へ印刷してみたいと思います。

IPP Everywhereとは

IPP Everywhereとは、スマートフォンから印刷するために用意されている仕組みである ようです。 独自のプリンタードライバーなしで印刷できる仕組みです。 長年GhostScriptが対応していないと、NetBSDから印刷できず苦労して来た訳です。 独自のプリンタードライバーなしにできるのだったら、もっと早く対応して欲しかったと 思わないではいられません…。 共通フォーマットの画像ファイルをHTTPベースのプロトコルで送って印刷するようです。

CUPSは、IPP Everwhereの対応を内蔵しています。 ですので、このシリーズの初日の記事 に加えてインストールする必要はありません。 ちなみに、今回利用している環境では、cups-baseのavahiオプションは有効にしていません。

Bonjourを利用するか、ippのURIを直接指定するか

mdnsdを起動させていれば、IPP Everywhere対応のプリンターは自動的に認識され、アプリケーションの印刷指示画面 に表示されます。 しかし、今回試した範囲では、うまくプリンターが準備完了状態と認識されませんでした。 ですので、ipp://で始まるURIを直接指定してプリンターを手動で追加することにしました。

IPP EverywhereのプリンターのURIを調べる

mdnsdを起動させた上で、ippfindを実行することで、IPP Everywhere対応のプリンターのURIに近いものを 表示させることができます。今回は、ipp://EPSON5D53C1.local:631/ipp/printという結果が得られました。 しかし、このままのEPSON5D53C1.localと言うホスト名では参照できませんので、IPアドレスまたは名前解決できるホスト名に 読み替えておきます。 今回は、LAN内でDDNS設定がされている環境なので、ipp://EPSON5D53C1.elements.tetera.org:631/ipp/print と読み替えました。 /ipp/printの部分を把握するのが肝心ですから、 pkgsrc/sysutils/avahiをインストールし、avahidaemonを起動した上で、avahi-browse -r -aを実行して確認するのでも良いかもしれません。 rp=ipp/printの部分を見れば良いようです。

# /etc/rc.d/mdnsd onestart
$ ippfind
ipp://EPSON5D53C1.local:631/ipp/print
# /etc/rc.d/avahidaemon onestart
$ avahi-browse -r -a
=  cdce0 IPv4 EPSON EW-M752T Series                         _ipp._tcp
 local
   hostname = [EPSON5D53C1.local]
   address = [10.81.0.149]
   port = [631]
l=http://EPSON5D53C1.local.:80/PRESENTATION/BONJOUR" "priority=30" "mopria-certified=2.0" "URF=CP1,PQ4-5,OB9,OFU0,RS360,SRGB24,W8,DM3,IS1-18,V1.4,MT1-3-5-8-11-12" "PaperMax=legal-A4" "kind=document,envelope,label,photo,postcard" "Fax=F" "Scan=T" "Duplex=T" "Color=T" "qtotal=1" "rp=ipp/print" "pdl=application/octet-stream,image/pwg-raster,image/urf,image/jpeg,application/vnd.epson.escpr" "product=(EPSON EW-M752T Series)" "usb_MDL=EW-M752T Series" "usb_MFG=EPSON" "ty=EPSON EW-M752T Series" "txtvers=1"]

プリンターを追加する

以下のような手順で、プリンターを追加して行きます。

http://localhost:631/ を開き、Administrationリンクから管理画面を開きます。Add Printerボタンをクリックします。

INternet Pronting Protocol (ipp)のラジオボタンを選択し、Continueボタンをクリックします。

Connection欄にさきほど求めておいたURIを入力します。今回は、ipp://EPSON5D53C1.elements.tetera.org:631/ipp/printです。その上でContinueボタンをクリックします。

Name、Description、Locationを入力します。

MakeとしてEPSONを選択し、Continueボタンをクリックします。

ModelとしてIPP Everywhereを選択しAdd Printerボタンをクリックします。

オプションは提案されたままにしました。Set Default Optionsボタンをクリックします。

これでプリンターを追加できました。

印刷してみる

今回は、pkgsrc/www/firefoxから印刷してみました。 無事にカラー印刷できました。

おわりに

これで、PDFファイル出力の仮想プリンター、PostScriptプリンター、 IPP Everwhere対応のプリンターをCUPSから使えるプリンターとして登録することが できました。 IPP Everwhereに対応できたことで、NetBSDから年賀状を印刷することもできそうです。

No comments:

Post a Comment

ローカルで大容量・多数のファイルをバックアップしたい場合

ネットワーク経由ではなく、ローカルのハードディスクドライブ間で多数・大容量のファイルをバックアップしたい場合にも、私は rsync を使っている。 途中経過を表示してくれるし、途中で止まってしまった場合にもリカバリーが簡単だろうという意図である。 幸運にも途中で止ま...