2009年10月2日金曜日

《転載》 MacOSXからWindows経由でのプリンタ印刷

これは Google に保存されている http://airpolice.ddo.jp/~kuikui/MacKnowhow/MacOSXWinPrint/MacOSXWinPrint.htm のキャッシュです。 このページは 2009年9月14日 02:13:24 GMT に取得されたものです。 そのため、このページの最新版でない場合があります。 詳細

このページへのリンクにだけ含まれているキーワード:


本家が消失したので,google にキャッシュされていたものを保存しておく.

MacOSXからWindows経由でのプリンタ印刷

 職場のレーザプリンタにはMacOSX用のドライバ(PostScriptはオプションで使えるが追加費用が必要)がなくて困っていたのですが、 Webでいろいろ調べ試行錯誤した結果、Windows機経由で印刷できるようになりました。再設定に備えてのメモ、あるいは同様の問題で苦労している方 の参考になればと思い、その方法手順等について少し詳しく書いておきます。
 なお、プリンタの機種・環境によってはうまく動かない場合も考えられますので実行はあくまでも自己責任でお願いします。

■印刷環境

1 MacOSX機(本例ではOSX10.3.x)とWindows機(本例ではWindows2000Pro)はLANに接続されている。

2 プリンタはWindows機に接続されているか、LANに接続されている。(本例ではプリンタサーバを介してLANに接続されている。)

■OS以外に必要なソフト、ドライバ等

1 Windows用プリンタドライバ

機種固有のドライバです。(本例ではRichoのRPCSドライバをインターネットでダウンロード)

2 Windows用Ghostscript

仮想プリンタドライバです。(本例ではgs800w32.exegs800-j-wapiをインターネットでダウンロード)

3 Windows用RedMon

仮想プリンタポートです。(本例ではredmon17をインターネットでダウンロード)

■動作原理

1 MacOSXからWindowsのGhostscript仮想プリンタドライバへPS(PostScript)データを送る。

2 WindowsはGhostscript仮想プリンタドライバでPSデータをWindows用データに変換し、RedMon仮想プリンタポートへデータを送る。

3 RedMon仮想プリンタポートは送られてきたデータを機種固有のプリンタドライバにそのまま転送(Redirect)する。

4 機種固有のプリンタドライバはWindows用データを機種固有の印刷データに変換し、プリンタポートあるいはLANポートに送出し印刷する。(これはプリンタドライバ本来の機能です)

■ドライバ等のインストール

1 Windowsに機種固有のプリンタドライバをインストールする。

ドライバに添付されている説明書の通りにインストールしてください。

2 WindowsにGhostscriptをインストールする。

Ghostscriptに添付されている説明書の通りにインストールしてください。日本語化キット(gs800-j-wapi)もインストールしておきます。

3 WindowsにRedMonをインストールする。

RedMonに添付されている説明書の通りにインストールしてください。

■ドライバ等の設定

1 機種固有のプリンタドライバの設定

ドライバはインストールの実行で作成されているはずです。メニューの「スタート」→「設定」→「プリンタ」で確認できます。(本例ではNX630Nと命名)

設定は通常の設定です。つまりWindows上のアプリから直接印刷できる状態に設定します。ドライバアイコンを選択しておいて、メニューの「ファイル」→「プロパティ」で設定できます。(本例ではIPプリンタにしています。)

ここで何かWindowsのアプリを動かし、このプリンタドライバで正常に印刷できるかどうかを確認しておけば、この後の設定で問題が発生した場合も解決しやすくなります。

2 仮想プリンタドライバの作成

メニューの「スタート」→「設定」→「プリンタ」→「プリンタの追加」→「プリンタの追加ウイザード」→「ローカルまたはネットワークプリンター」ローカルプリンタ→「プリンタポートの選択」新しいポートの作成(Redirected Port)→「プリンタの製造元とモデル」でPSプリンタのどれかを選択する(PSプリンタならどれでも良い。本例ではAppleのLaserWrite Pro 600を選択)。→「プリンタ名」で適当な名前を付けます(本例ではPSPrinterと命名)。「通常使うプリンタ」いいえ→「プリンタ共有」する→「場所とコメント」適当に→「テストページの印刷」いいえ。で仮想プリンタドライバを作成します。

Windowsの種類によっては上記の手順とやや異なるかもしれませんが、「プリンタポートの選択」で 「Redircted Portを選択する」ことが最も重要な点です。それから「プリンタ共有」を「する」に設定するのも忘れないでください。なお、これらの設定は仮想プリンタドライバ作成後に変更することも可能です。

3 仮想プリンタドライバの設定

Windows の「スタート」→「設定」→「プリンタ」で,仮想PSプリンターを選択しておいて,「ファイル」→「プロパティ」でプロパティの窓が開きます。そこで 「ポート」タブをクリックし「ポートの構成」ボタンをクリックすると、設定用ダイアログが開きますので、次のように設定します。

以 下に各テキストの内容を書いておきますが、本当は私もあまり詳しくない(実はこの部分で相当な時間を費やしました。試行錯誤でなんとか動いている状態で す。)ので細部はGhostscriptやRedMonのマニュアルを参考に各自の環境に合わせて変更してください。下線部分が入力するテキストで、 Ghostscriptを普通にインストールしていれば、イタリック+ボールドで表示してある部分を各自の環境に合わせて変更すればOKのはずです。(画面の関係で2行に表示されている部分は実際は一行です。また、半角スペースもわかりずらいので注意してください。)

Redirect this port to the program:
c:\gs\gs8.00\bin\gswin32c.exe

Output:
-lc:\gs\gs8.00\lib;c:¥gs\fonts;c:\gs\gs8.00\kanji -sDEVICE=mswinpr2 -dNOPAUSE -dSAFER -sPAPERSIZE=a4 -r600 -sOutputFile="\\spool\NX630N" -

c:はプログラムあるいはデータファイルが置いてあるドライブ名、a4は用紙サイズ、600はプリンタのdpi、NX630Nはプリンタドライバ名です。

ここで何かWindowsのアプリを動かし、仮想プリンタドライバで正常に印刷できるかどうかを確認しておけば、この後の設定で問題が発生した場合も解決しやすくなります。

■MacOSXプリンタ設定

「アプリケーション」フォルダ→「ユーティリティ」フォルダにある「プリンタ設定ユーティリティ」をダブルクリッ クし起動します。あるいは「アップルメニュー」→「システム環境設定」→「プリントとファクス」→「プリント」タブ→「プリンタを設定」ボタンでも同じよ うに「プリンタ設定ユーティリティ」が起動します。

「プ リンタリスト」ウインドウの「追加」アイコンをクリックします。プリンタ追加用シートが表示されますので「Windowsプリント」を選択します。「対象 となるWindows機」も適切なものを選択してください。Windowsの共有プリンタ一覧が表示されますので仮想プリンタドライバを選択します。「プ リンタの機種」は適当なPSプリンタを選択します(PSプリンタならどれでも良い。本例ではAppleのLaserWriter Pro 600を選択)。

「追加」ボタンを押すとプリンタリストにWindowsのプリンタ(本例ではPSPrinter)が追加されます。

■RedMonのレジストリ追加

以上の設定でMacOSXからWindowsのプリンターで印刷ができるようになるのですが、WindowsNT系(本例ではWindows2000Pro)ではWindowsの印刷窓が開いてしまい自動で印刷することができません。理由は「redmon がサービスとしてインストールされるため,セキュリティの問題からプリンタのスプールが見えません.これは,redmon がAdmin(User)アカウントでなく,Systemアカウントで実行されるため,レジストリの内容が違っているためです.これを回避するためにはレ ジストリエディタ regedit を使って、[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows NT\CurrentVersion\Devices]   "ドライバ名"="winspool,LPT1:"といったエントリを追加する必要があります.」(「」内イタリック部分は西村明氏のWebでの書き込みを引用しました。)

以下にエントリ追加の具体的な方法を記述しますが、レジストリエディタはシステムツールであり使用を間違えると非常に危険です。システムが動かなくなる場合も考えられます。そうなった場合、誰も助けてはくれません。実行する場合は自己責任で慎重に操作してください。

1 レジストリエディタを起動する

いろいろな方法がありますが、Windowsの「スタート」→「ファイル名を指定して実行」で現れる「ファイル名指定」窓の「名前」のフィールドに regedit と入力し「OK」ボタンを押せば起動します。

2 エントリーを追加する

レジストリエディタ窓の左側の部分で「マイコンピュータ」→「HKEY_USERS」→.「DEFAULT」→「Software」→「Microsoft」→「Windows NT」→「CurrentVersion」とたどり、「Devices」 ディレクトリを選択します。その状態でメニューの「編集」→「新規」→「文字列」でプリンタのレジストリを作成します。

次いで作成したエントリを選択します。その状態でメニューの「編集」→「変更」で現れる「文字列の編集」窓で「値のデータ」をwinspool,LPT1:とし、OKボタンを押します。

後はレジストリエディタを閉じエントリを保存します。

■未解決問題点

1 プリンタの機種にもよるのですが、Windowsで印刷するよりもかなり時間がかかる場合があります。

2 全ページ印刷では問題ないのですが、範囲指定で印刷すると最初のページしか印刷されません。