GPD の Duplex ユニットを自動検出する
二重ユニットがインストールできるよう、次の例のように定義されている Duplex 機能が GPD ファイルにあるとします。
*Feature: Duplex
{
*rcNameID: =TWO_SIDED_PRINTING_DISPLAY
*DefaultOption: NONE
*Option: NONE
{
*rcNameID: =NONE_DISPLAY
*Command: CmdSelect
{
*Order: DOC_SETUP.9
*Cmd: "<1B>&l0S"
}
}
*Option: VERTICAL
{
*rcNameID: =FLIP_ON_LONG_EDGE_DISPLAY
*Command: CmdSelect
{
*Order: DOC_SETUP.10
*Cmd: "<1B>&l1S"
}
}
*Option: HORIZONTAL
{
*rcNameID: =FLIP_ON_SHORT_EDGE_DISPLAY
*Command: CmdSelect
{
*Order: DOC_SETUP.10
*Cmd: "<1B>&l2S"
}
}
}
*%
*% Installable Option
*%
*Feature: DuplexUnit
{
*rcNameID: 429 *% Duplex Unit
*HelpIndex: 12004
*FeatureType: PRINTER_PROPERTY
*DefaultOption: FALSE
*Option: NotInstalled
{
*rcNameID: 444
*DisabledFeatures: LIST(Duplex.VERTICAL, Duplex.HORIZONTAL)
}
*Option: Installed
{
*rcNameID: 443
}
}
次の GDL コード例を使用すると、二重ユニット (前の GPD コード例で説明した) の存在を自動検出し、適切なオプションを設定することができます。 この例では、スプーラーは *BidiQuery コンストラクトに表示されるクエリを送信します。 プリンターは、クエリを受け取ると、2 つの可能な *Option コンストラクト値のいずれかで応答します。
*Feature: DuplexUnit
{
*% Note that the *BidiQuery and *BidiResponse constructs must have the same names
*BidiQuery: DuplexUnit
{
*QueryString: "\Printer.Configuration.DuplexUnit:Installed"
}
*BidiResponse: DuplexUnit
{
*ResponseType: BIDI_BOOL
*ResponseData: ENUM_OPTION(DuplexUnit)
}
*Option: NotInstalled
{
*BidiValue: BOOL(FALSE)
}
*Option: Installed
{
*BidiValue: BOOL(TRUE)
}
}