HAYAGUI

MacOS X 10.3 (Panther) + ネットワーク共有印刷できないプリンタ

以下の内容は、 「WindowsからMacOSX共有プリンタに印刷」「MacOSXからWindows共有プリンタに印刷」の先頭に書いてある注意書きをまとめたものです。

教えて頂いた MacOSXのユーザの皆様、ありがとうございました。

USB専用プリンタドライバ

USB接続インクジェットプリンタのMacOSX用プリンタドライバは、 USB接続専用になっているようです。

私が EPSON PM-760C で動作を確認していた頃はネットワーク共有可能でしたが、 最近の Canon PIXUS iP4100 などは、今のところUSB接続専用のようです。

このようなプリンタの場合、以下のようなネットワーク印刷はできないと思われます。

  • Windowsからプリンタ専用のWindowsプリンタドライバを使って、MacOSXに接続したプリンタに印刷。
    →Windowsにプリンタを追加できるけど、印刷指示しても印刷されず。
  • MacOSXからプリンタ専用のMacOSXプリンタドライバを使って、Windowsに接続したプリンタに印刷。
    →MacOSXからWindowsのプリンタが見えるけど、プリンタドライバが選択できない。

出力先が /dev/null

Apple Discussion Boards の「印刷」でご存知の方もいらっしゃると思われますが、 この手のプリンタは、プリンタの出力先が /dev/null になっています。 /dev/null は、UNIXで「破棄する時」に使用するデバイスとなります。

EPSON PM-760C と Canon iP-4100 を MacOSX 10.3 に USB接続してドライバを追加した環境を確認します。

ターミナルを開いて、lpstat -t コマンドを使用すると、プリンタの出力先を確認することができます。

ibg4:~ kenz$ lpstat -t
scheduler is running
system default destination: iP_4100
device for iP_4100: ///dev/null
device for PM-760C: usb://EPSON/PM-760C?serial=vd0CT0001111039080
iP_4100 accepting requests since Jan 01 00:00
PM-760C accepting requests since Jan 01 00:00
printer iP_4100 is idle.  enabled since Jan 01 00:00
printer PM-760C is idle.  enabled since Jan 01 00:00
ibg4:~ kenz$ 
iP_4100 が /dev/null で、PM-760C が usb://EPSON/PM-760C?serial=vd0CT0001111039080 と USBデバイスが指定されています。 これらは、/etc/cups/printers.conf を見ても確認できます。
ibg4:~ kenz$ sudo cat /etc/cups/printers.conf
# Printer configuration file for CUPS v1.1.20rc1
# Written by cupsd on Sun Mar 20 20:46:33 2005
<DefaultPrinter iP_4100>
Info iP_4100
Location ibg4
DeviceURI file:///dev/null
State Idle
Accepting Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
</Printer>
<Printer PM-760C>
Info PM-760C
Location ibg4
DeviceURI usb://EPSON/PM-760C?serial=vd0CT0001111039080
State Idle
Accepting Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
</Printer>
ibg4:~ kenz$ 

MacOSXのプリントシステムからは、USBデバイスとして両方見えています。
ibg4:~ kenz$ sudo /System/Library/StartupItems/PrintingServices/PrintingServices  restart
Password:
Restarting printing services
ibg4:~ kenz$ lpinfo -v
network pap
network socket
direct bluetooth
serial fax://dev/cu.Bluetooth-Modem
serial fax
network http
network ipp
direct usb://Canon/iP_4100?serial=31585A
network lpd
serial fax://dev/cu.modem
direct usb://EPSON/PM-760C?serial=vd0CT0001111039080
direct usb
network smb
network mdns
ibg4:~ kenz$ 
「ではなぜ印刷できるんだろ」となりますが、MacOSXが採用しているプリントシステムである CUPS のプリンタコマンド変換フィルタ(またはフィルタを経由する別プロセス)が直接プリンタと通信しているものと推測されます。

EPSON PM-760C の場合。

 +-------------------------------------------------------------+
 | CUPSD (CUPS本体)                                            |
 +-------------------------------------------------------------+
 | Filter (ラスタデータをプリンタコマンドに変換するプログラム) |
 +-------------------------------------------------------------+
 | Backend (出力デバイス毎のプログラム usb,parallel,ipp,lpd..) |
 +-------------------------------------------------------------+
      ↓
    Printer
Canon iP_4100 の場合。
 +---------+
 | CUPSD   |
 +---------+
 | Filter  |→ Printer
 +---------+
 | Backend |
 +---------+
WindowsからMacOSXに接続しているプリンタに印刷する場合、
Windowsに実際使うプリンタ用のプリンタドライバをインストールして使うと、ネットワーク上はPostScriptではなくプリンタコマンド(例えばEPSON用とかCanon用とか)が流れます。 この場合、MacOS側はRAWをサポートする必要があるのですが、RAWということはコマンド変換をする必要が無いので、上の図のFilterを通らないはず。 ということは、クライアントからの印刷データはそのまま /dev/null に流れて印刷がされないはずです。
 +---------+
 | CUPSD   |
 +---------+
 | Backend |
 +---------+
   ↓
   /dev/null なので破棄

MacOSXからWindowsに接続しているプリンタに印刷する場合、
MacOSX上でプリンタ追加時に、USBプリンタでは無いのでローカル接続で使っていたプリンタドライバが選択できないと思われます。


戻る



(C)1999 - 2005 Kenji Ito All rights reserved.