HAYAGUI

MacOS X 10.4 + WindowsからMacOSX共有プリンタに印刷

注意

近頃のUSBプリンタのMacOSX用プリンタドライバは、出力先が /dev/null になっているものが多数あります。 Terminal を開いて、以下のように lpstat -t を実行するとわかります。
ibg4:~ kenz$ lpstat -t
scheduler is running
system default destination: iP_4100
device for iP_4100: ///dev/null
iP_4100 accepting requests since Jan 01 00:00
printer iP_4100 is idle.  enabled since Jan 01 00:00
この場合、このWebページで説明している 「プリンタ専用のWindowsプリンタドライバを使ってMacOSXのプリンタに印刷」はできないと思われます。

詳しくはMacOS X 10.3 (Panther) + ネットワーク共有印刷できないプリンタに書きました。

はじめに

WindowsからMac OS Xが共有しているプリンタに印刷する方法としては、以下の3種類あります。
  1. プロトコルとして SMB を利用した印刷。
  2. プロトコルとして LPR を利用した印刷。
  3. プロトコルとして IPP を利用した印刷。
  4. プロトコルとして RAW(JetDirect) を利用した印刷。別ページに飛びます。
このCUPSの図を見ると良くわかると思います。

CUPS のその他の使い方は、TopPageのCUPS-1.1.15.1 + FreeBSD 4.7 を参照してください。

尚、MacOSXからWindows2000共有プリンタに印刷したい場合はこちら

Macとしてサポートしているのは、最初のWindowsネットワーク印刷だと思いますが、 MacOSXはUNIXでありプリントシステムとしてCUPSを利用しているので、 LPRでもIPPでもOKなハズです。

とりあえずやらなければいけないのは、以下のようにRAWデータをサポートする必要があります。

お勧めは、IPPをサポートしているOSの場合はIPPがいいと思います。 IPPをサポートしていない場合はCUPS-LPDをインストールしてLPR。 SMBは薦めません。


RAWデータサポート

この設定は、SMB,LPR,IPP,JetDirectのすべての時に行う必要があります。

Windowsクライアントからは、プリンタが理解できる言語で出力されます。 MacOSXがそのデータを受けた時、そのままプリンタに流す為には、 以下のように設定を変更する必要があります。 これは、FreeBSD+CUPS(Windows2000から印刷)で作業したことと同じです。

方法は2つあります。

  • /etc/cups/ の mime.types と mime.convs を変更する。
  • /etc/cups/ に raw.types と raw.convs を追加する。

mime.types/mime.convsを変更する方法

/etc/cups/mime.convs を sudo vi で開きます。

ibg4:/etc/cups kenz$ pwd
/etc/cups
ibg4:/etc/cups kenz$ sudo vi mime.convs
一番下にある以下の設定を有効にします。
ibg4:/etc/cups kenz$ tail mime.convs 
# in mime.types to allow printing of arbitrary files without the -oraw
# option.
#

#application/octet-stream       application/vnd.cups-raw        0       -
application/octet-stream        application/vnd.cups-raw        0       -

#
# End of "$Id: mime.convs,v 1.1.1.8 2003/05/14 05:23:46 jlovell Exp $".
#
今度は、mime.types を開きます。
ibg4:/etc/cups kenz$ sudo vi mime.types
こちらも一番下の設定を有効にします。
ibg4:/etc/cups kenz$ tail mime.types 
# filter line in mime.convs to allow raw file printing without the
# -oraw option.
#

#application/octet-stream
application/octet-stream

#
# End of "$Id: mime.types,v 1.1.1.9 2003/04/11 21:07:16 jlovell Exp $".
#

変更した設定をCUPSに反映させるために、cupsd を再起動します。
ibg4:/etc/cups kenz$ sudo /System/Library/StartupItems/PrintingServices/PrintingServices restart
Restarting printing services
ibg4:/etc/cups kenz$ 
これでOK。

raw.types/raw.convsを追加する方法

(2005/12/06追加)

これは、mime.types と mime.convs を変更しないで、raw に関するところだけを別のファイルとして追加する方法です。

ibg4:/etc/cups kenz$ pwd
/etc/cups
ibg4:/etc/cups kenz$ ls *.types *.convs
apple.convs             command.types           mime.types
apple.types             mime.convs              pstoraster.convs
ibg4:/etc/cups kenz$
以下のような2つのファイルを作成します。
ibg4:/etc/cups kenz$ cat raw.convs
application/octet-stream        application/vnd.cups-raw        0       -

ibg4:/etc/cups kenz$ cat raw.types
application/octet-stream

ibg4:/etc/cups kenz$ ls -la raw.*
-rw-r--r--   1 root  lp  75 Dec  6 21:35 raw.convs
-rw-r--r--   1 root  lp  26 Dec  6 21:37 raw.types
ibg4:/etc/cups kenz$
変更した設定をCUPSに反映させるために、cupsd を再起動します。
ibg4:/etc/cups kenz$ sudo /System/Library/StartupItems/PrintingServices/PrintingServices restart
Restarting printing services
ibg4:/etc/cups kenz$ 
これでOK。

SMB

最初に、Windows2000Proから SMB でMacが公開しているプリンタに対して印刷させる方法を報告します。

MacOSXの環境設定

「システム環境設定」の「共有」をクリックして、「Windows共有」サービスを有効にします。 でも、これをやっちゃうと、ユーザのホームディレクトリ内容も公開してしまうので、かなり危険だと思います。

Windows2000でプリンタインストール

Windowsのエクスプローラを開いて、Windows Network のワークグループを開きます。 ネットワーク上にある MacOSX (hostname:ibg4) をクリックすると、 フォルダとプリンタが表示されます。(このフォルダが全部公開されているので危ない)

プリンタを選択したら、右クリックして「接続」を選択するか、プリンタフォルダにドラッグドロップすると、 プリンタがインストールされます。

プリンタドライバが無い場合は以下のように表示されますので、プリンタに対応したドライバをインストールします。

こんな感じにプリンタが追加される。

プリンタドライバ上のポートを見ると、こんな感じ。

Windows2000から印刷

プリンタドライバのテストページを印刷させると、MacOS上では以下のようにスプーリングされて印刷されます。 でも、かなり遅い。


LPR

MacOSX上で、CUPSが提供するCUPS-LPDを動かす必要があります。この設定は、こちらを参照してください。ポートを確認する為、portsscan してみます。ネットワークユーティリティを開いて、「Portsscan」を選択し「localhost」に対して Scan してみてください。lpd の 515番 printer が開いていることがわかります。

では、Windows上でLPRポートを作成します。Windows2000で使用できるLPRは、以下の2つあります。いづれかを使用してください。 でも、どっちも不具合がありますので、あまり信用しないように。

  1. Standerd TCP/IP Port Monitor
  2. UNIX用印刷サービス
Standerd TCP/IP Port Monitor は、プリンタフォルダから「サーバのプロパティ」を開いてポートを追加します。 「IPアドレス」には、プリンタを共有しているホストのIPアドレス、「キュー名」には、共有しているプリンタの名前を設定します。 「LPRバイトカウントを有効にする」は必ずチェックしてください。

「UNIX用印刷サービス」が提供するLPRは、デフォルトではインストールされませんので、 「コントロールパネル」から「アプリケーションの追加と削除」を開き「Windowsコンポーネントの追加と削除」の 「その他のネットワーク ファイルと印刷サービス」からインストールします。後は、Standerd TCP/IP Port Monitor と同様に「サーバのプロパティ」を開いて「LPR」を選択しポートを追加します。

これで、LPRポートを作成しました。あとは、プリンタを追加して使用するポートに先ほどのLPRポートを追加します。

印刷指示を出してから印刷されるまでは、SMBより全然こっちの方が速いです。


IPP

プリンタを追加する時に、ネットワークプリンタを選択します。

「プリンタの検索」は、「インターネットまたはイントラネット上のプリンタに接続します」を選択します。 URL には、以下の書式で設定します。

http://<HostName or IPAddress>:631/printers/<PrinterName>

後は、プリンタを選択して終わりです。

と、本当はこの流れで追加できるんですけど、なぜか私のWindows2000マシンからは以下のような「プリンタへ接続できませんでした。」メッセージが出て追加できませんでした。(結構悩んだ..)

でも、実はポートが以下のようにポートが追加されていることが判明。

この場合は、プリンタ追加時にローカルプリンタを選択してローカルポートとしてIPPポートを選ぶことで、 プリンタを追加できました。

印刷もOK。速度はLPRぐらいかな。


戻る



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