Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

プリンタ

この章では、Caché で印刷デバイスを構成および使用する方法について説明します。プリンタは、物理的な出力限定デバイスです。プリンタは、文字プリンタ、またはファックスやプロッタなどの文字以外のデバイスです。

ほとんどの場合、出力は、直接プリンタには送信されません。多くの場合、印刷される出力は、まず、論理スプール・デバイス (^SPOOL グローバル) に送信されます。その後、^SPOOL グローバルの内容を、物理的プリンタに送信できます。スプーリングの詳細は、このドキュメントの "スプール・デバイス" の章を参照してください。

プリンタの概要

Windows および UNIX® では、プリンタ入出力の扱いがそれぞれ異なっています。

  • Windows システムではプリンタをシーケンシャル入出力デバイスとして扱い、シーケンシャル・ファイル入出力と同じ構文に従います。ただし、シリアル通信ポートを通じて接続されているプリンタは、ターミナル入出力デバイスとして処理されます。

  • UNIX® システムでは、常にプリンタがターミナル入出力デバイスとして処理されます。UNIX® ではプリンタを tty デバイスの “character special” ファイルとして扱い、ターミナル入出力と同じ構文に従います。

Windows システムでは、%Library.Device.InstalledPrinters()Opens in a new tab メソッドを使用して、ご使用のシステムにおける現在のプリンタ数を返すことができます。%Library.Device.GetPrinters()Opens in a new tab メソッドを使用すれば、ご使用のシステムにおける現在のプリンタのリストを返すことができます。

プリンタの指定

プリンタには、256 から 2047 までのデバイス番号を割り当てることができます。このデバイス番号の範囲は、ターミナルおよびフラット・ファイルにも使用されます。

Windows システムでは、そのデバイス番号または割り当てられたデバイス・ニーモニックを使用してプリンタを参照できます。Windows の既定のプリンタ・ニーモニックは、|PRN| です。

プリンタを指定するには、以下の 2 つの方法があります。

  • %IS ユーティリティを呼び出すと、%IS グローバルで定義されたニーモニックを使用して、デバイスを指定できます。このユーティリティにより、デバイスが開かれ、そのパラメータが設定されます。

  • 引用符で囲まれた文字列として指定したオペレーティング・システム・デバイス名を使用して、入出力コマンドの OPENUSE、および CLOSE を発行します。

プリンタのオープン

プリンタを開く際、デバイス名を使用して、デバイスを指定できます。デバイス名は、引用符で囲む必要があります。このデバイスの名前の最大長は 256 文字です。形式は以下のとおりです。

OPEN "device"
USE "device"
CLOSE "device"

Windows では、プリンタをシリアル通信ポートに接続することもできます。この場合、プリンタは、以下の構文を持つターミナル入出力と同様に扱われます。

OPEN "comn:"

n は、プリンタが接続されるポート番号です。

Windows でのプリンタの指定

Windows で既定のプリンタを使用するには、以下を入力します。

   OPEN "|PRN|"

使用しているコンピュータに対して既定の Windows プリンタを設定してある場合は、これによってその既定のプリンタが使用されます (既定のプリンタの設定方法は、Windows のドキュメントを参照してください)。

既定以外のプリンタを使用するには、以下を入力してください。

  OPEN "|PRN|printer"
printer UNC (Universal Naming Convention) 名、あるいは、マシンのプリンタ・リストに表示される名前 (Windows NT/2000/XP のプリント・マネージャ)。

以下の例は、UNC 名の使用方法です。

   OPEN "|PRN|\\business\accounting"

以下の例は、マシンのプリンタ・リストに表示される UNC 名以外の名前の使用方法です。

   OPEN "|PRN|HP LaserJet 5P"
Note:

インターシステムズは、COM1、LPT1 のようなプリンタ・ポート名を使用しないことをお勧めします。このような名前を使用すると、どのプリンタであるか検索され、それが存在する場合、その名前が参照されて使用されます。しかし、この処理には時間がかかるため、Windows では適切ではありません。

Windows システムでは、プリンタは、OPEN コマンドの名前によって識別され、ターミナル入出力モジュールではなくシーケンシャル入出力モジュールによって処理されます。したがって、サポートされている OPEN および USE のコマンド引数は、シーケンシャル・ファイル入出力のコマンド引数と同じであり、ターミナル入出力のコマンド引数とは異なります。例外は、シリアル通信ポートで Windows システムに接続されているプリンタで、その場合、プリンタはターミナル入出力デバイスとして処理されます。

Windows システムでは、“:n” 位置パラメータを使用して出力マージンを制御することはできません。そのため、Caché ではこのような記述は無視されます。例えば、"|PRN|":121 のようなコードは無視されます。出力幅を制御するには、プリンタに適切な制御文字を送信します。これは、他のプラットフォームにも当てはまります。

Windows では、OPEN は、ほとんどのシーケンシャル入出力キーワード・パラメータをサポートします (このドキュメントの"シーケンシャル・ファイルの入出力" の章を参照)。以下のテーブルは、OPEN コマンドを使用する Windows システムで (シーケンシャル・ファイルとして扱われる) プリンタを制御する追加のプリンタ・キーワード・パラメータの説明です。

Windows プリンタ用の追加 OPEN キーワード・パラメータ
キーワード 既定 説明
/DOCNAME= “name “Cache” /DOCNAME により、プリンタ・ジョブ名を再定義できます。
/OUTPUTFILE= “filename NULL /OUTPUTFILE により印刷をファイルに転送します。適格なパス名を指定してください。
/DATATYPE= “type “RAW” /DATATYPE により、プリンタ・スプール・データのデータ型を再定義できます。頻繁に使用されるデータ型の 1 つは TEXT です。

Windows システムでは、OPEN で直接プリンタに印刷する (論理スプール・デバイスを使用しない) と、プリンタがオフの状態、もしくは存在しない場合、OPEN コマンドの timeout 引数は期限切れになりません。Caché プロセスは、プリンタが使用可能になるまで、または Windows のコントロール パネルでドキュメントの印刷がキャンセルされるまで、中断された状態のままになります。

UNIX® でのプリンタの指定

UNIX® デバイス名 /dev/tty06 を持つターミナルで入出力デバイスを開くには、以下のコマンドを入力します。

   OPEN "/dev/tty06"

UNIX® システムでは、プリンタは、OPEN コマンドで指定した名前で識別され、tty デバイスの “character special” ファイルとして処理されます。したがって、サポートされる OPENUSE のコマンド引数は、ターミナル入出力のコマンド引数と同じであり、シーケンシャル・ファイル入出力のコマンド引数とは異なります

UNIX® では、OPEN は、ほとんどのターミナル入出力キーワード・パラメータをサポートします (このドキュメントの "ターミナル入出力" の章を参照)。以下のテーブルでは、UNIX® システムで OPEN コマンドを使用してプリンタを制御する場合の追加のプリンタ・キーワード・パラメータを説明しています。

UNIX® シリアル・プリンタ用の追加 OPEN キーワード・パラメータ
キーワード 既定 説明
/DOCNAME= “name “Cache” /DOCNAME により、プリンタ・ジョブ名を再定義できます。
/OUTPUTFILE= “filename NULL /OUTPUTFILE により印刷をファイルに転送します。適格なパス名を指定してください。
/DATATYPE= “type “RAW” /DATATYPE により、プリンタ・スプール・データのデータ型を再定義できます。頻繁に使用されるデータ型の 1 つは TEXT です。

プリンタへの出力先指定

%IS ユーティリティを使用して、プリンタを出力先に指定できます。DO ^%IS コマンドを使用して、%IS ユーティリティを呼び出すことができます (DO OUT^%IS を使用して、出力限定デバイスを選択していることを指定することもできます)。いずれの場合でも、Caché は、Device: プロンプトを返します。プリンタを指定するには、既定のニーモニック "|PRN|" または別の構成済みプリンタのニーモニックで応答します。その後、%IS ユーティリティは、 OPEN パラメータを提示します。プリンタの場合、既定は “W” (書き込み専用) です。以下の例に示すように、Return キーを押して、既定のパラメータを受け入れることができます。

%SYS>DO ^%IS
Device: |PRN|
Parameters? "W" => <RETURN>
%SYS>

これによって、現在のプロセスの出力デバイスとして指定されたプリンタが開かれます。

%IS ユーティリティは、各種変数を設定します。以下は、Windows システムでのプリンタの既定値です。

%IS により設定される変数
変数 説明
IO |PRN| 選択したデバイスのデバイス・ニーモニック
IOF # 改ページ文字。WRITE # は、改ページ発行し、$Y を変更します。改ページには WRITE @IOF を使用する必要があります。
IOBS $C(8) バックスペース/オーバープリント文字 (ASCII 8)。WRITE $CHAR(8) は、バックスペースを発行し、$X を変更します。WRITE *8 は、バックスペースを発行しますが、$X を変更しません。バックスペースには、WRITE @IOBS を使用する必要があります。
IOM 132 右マージン。文字単位での行の長さ。
IOSL 66 文字単位でのページの長さ。
IOT OTH デバイス・タイプ。ここでは “その他” です。
IOST P-DEC デバイス・サブタイプ名。
IOPAR ("W") OPEN パラメータ。プリンタは、書き込み専用デバイスなので、ここでは “W” です。
MSYS M/WNT システム・タイプ (UNIX® または Windows NT)。M/WNT は、Windows NT での Caché です。
POP 0 %IS が実行され (これらの変数が初期化され) たことを示します。0 の場合、デバイスが指定されました。1 の場合、デバイスは指定されていません (ユーザが Device: プロンプトで「STOP」と入力しました)。

これらの値のほとんどは、管理ポータルから表示および設定することもできます。システム, 構成, デバイス設定 を選択します。[デバイス] および [デバイス・サブタイプ] の現在の内容を確認します。特定のプリンタの設定を表示するには、[編集] を選択します。

%IS プリンタ設定変数

スプーリングのために %IS を呼び出すと、プリンタの書式を設定するルーチンの名前を指定する IOPGM 変数をこの %IS に渡すことができます。

代替デバイスとしてのプリンタ

“A” という名前の新規デバイスを定義し、|PRN| の物理デバイスを指定することによって、すべてのプロセスについて、代替デバイスとしてプリンタを指定できます。その後、%IS を使用する時に、Device: プロンプトで A を指定します。

プリンタをターミナル・プロセスのための代替入出力デバイスとして設定できます。管理ポータルに移動します。システム, 構成, デバイス設定, デバイス を選択します。現在のターミナル・デバイスに対して [編集] を選択し、[代替デバイス] の値を指定します。

FeedbackOpens in a new tab