Détection automatique de l’unité duplex pour GPD
Supposons que votre fichier GPD dispose d’une fonctionnalité Duplex définie comme dans l’exemple suivant, de sorte que l’unité duplex soit installable :
*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
}
}
L’exemple de code GDL suivant permet de détecter automatiquement l’existence d’une unité duplex (qui est décrite dans l’exemple de code GPD précédent) et de définir l’option appropriée. Dans cet exemple, le spouleur envoie la requête affichée dans la construction *BidiQuery . Lorsque l’imprimante reçoit la requête, elle répond avec l’une des deux valeurs de construction *Option possibles.
*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)
}
}