みなさま、こんにちは。しむぅです。

今回は、プリンタドライバに関するお話です。

プリンタ情報取得ツールを起動すると以下の画面が表示されます。

左側に表示されているプリンタを選択するだけで該当するプリンタの情報が表示されます。

この表示される内容ですが、同じプリンタドライバを使用していても表示される内容が異なる場合があります。
それは、プリンタドライバのインストール方法によって変わります。

プリンタドライバをインストールする際、最近のOSでは以下の画面が表示されます。(画像はWindows7のを使用しています。)

「ローカルプリンタ」か「ネットワークプリンタ」かの選択になりますが、ここでの選択方法により変わるのです。

最近では、自身のマシン直接プリンタを接続するよりも、サーバーに接続されているプリンタ等ネットワーク上のプリンタを使用する場合が多いと思います。

なので、ここでの選択では「ネットワークプリンタ」を選択することになるかと思いますが、それだと、多少困ったことがおきます。

サーバーに接続されているプリンタを使用するために「ネットワークプリンタ」としてインストールしたとしましょう。
この場合、プリンタが使用できる用紙情報等は誰が持っているのでしょうか。

正解は、サーバーにインストールされているプリンタドライバの情報となります。

普通にアプリケーションから印刷する場合は印刷ダイアログを表示して一覧から用紙を選択して・・・で印刷をすれば特に問題はありませんが、シーオーリポーツで印刷をする場合に問題が出てきます。

たとえば、不定形の印刷では、「サーバーのプロパティ」に用紙登録をする必要があります。(OSによってはプリントサーバーのプロパティとなります。)

この用紙登録は、「ネットワークプリンタ」としてインストールした場合は、用紙情報はサーバーとなりますので登録処理もサーバー側で行なう必要があります。

シーオーリポーツ Ver.9 では、SetFormSizeメソッドを使用することで、「サーバーのプロパティ」に簡単に用紙登録をすることができますが、プリンタドライバが「ローカルプリンタ」としてなのか「ネットワークプリンタ」としてインストールされたかはわかりません。

回避する方法としては、手動で用紙登録を行なっていただくか、「ネットワークプリンタ」としてではなく、「ローカルプリンタ」としてインストールしていただくことになります。

インストールの仕方は、「ローカルプリンタ」を選択するとプリンタポートの選択画面が表示されます。

ここで、「新しいポートの作成」を選択し、コンボボックスから「Standard TCP/IP Port」を選びます。

あとは、どこにあるプリンタかを指定すればOKです。

「ローカルプリンタ」としてインストールしてしまえば、「サーバーのプロパティ」への登録も問題なく動作します。

WindowsXPのときも、「ローカルプリンタ」か「ネットワークプリンタ」かの選択はありましたが、プリンタドライバは、「ローカルプリンタ」としてインストールし、ポートは「Standard TCP/IP Port」にするのが一般的だったのですが、最近では「ネットワークプリンタ」としてインストールするのが一般的なのでしょうか。

「ネットワークプリンタ」としてインストールした場合の動きをさらに検証する必要があるようですね。