Sdílet prostřednictvím


Zpracování instalovatelných funkcí a možností

Důležitý

Moderní tisková platforma je upřednostňovaná pro komunikaci s tiskárnami ve Windows. Doporučujeme použít ovladač třídy doručené pošty IPP od Microsoftu spolu s tiskovými podpůrnými aplikacemi (PSA) k přizpůsobení prostředí tisku ve Windows 10 a 11 pro vývoj zařízení tiskárny.

Další informace najdete v průvodci návrhem aplikace Podpora tisku.

Některé z funkcí nebo možností tiskárny můžou být instalovatelné. Tiskárna může například přijmout volitelný zásobník obálek, který může nebo nemusí být aktuálně připojen. Tento podavač obálek musí být popsán v souboru GPD dvěma způsoby:

  • Jako možnost pro funkci InputBin.

  • Jako instalovatelná "funkce" (i když je to skutečně možnost), která uživateli umožňuje indikovat, jestli je skutečně nainstalována.

Nejprve pro určení podavače obálek zároveň s automatickým zásobníkem jako možností pro funkci InputBin lze použít následující položky GPD.

*Feature: InputBin
{
    *Name: "Input Bin"
    *Option: AUTO
    {
        *Name: "Automatic Feeder"
        *Command: CmdSelect {Command Attributes}
    }
    *Option: ENVFEED
    {
        *Name: "Envelope Feeder"
        *Command: CmdSelect {Command Attributes}
    }
}

K tomu, aby mohl být zásobník obálky nainstalován, jsou potřeba další položky GPD:

*InstalledOptionName: "Installed"
*NotInstalledOptionName: "Not installed"
*Feature: InputBin
{
    *Name: "Input Bin"
    *Option: AUTO
    {
        *Name: "Automatic Feeder"
        *Command: CmdSelect {Command Attributes}
    }
    *Option: ENVFEED
    {
        *Name: "Envelope Feeder"
        *Command: CmdSelect {Command Attributes}
        *Installable?: TRUE
        *InstallableFeatureName: "Optional Envelope Feeder"
    }
}

V položce *Option pro zásobník obálek byly přidány dva atributy:

  • *Instalovatelné? atribut indikuje, že možnost je možné nainstalovat.

  • Atribut *InstallableFeatureName určuje textový řetězec, který unidrv zobrazí, aby uživatel mohl určit, zda je tato možnost skutečně nainstalována.

Kdykoli je *Instalovatelné? nastaveno na TRUE pro danou funkci či možnost, Unidrv vytvoří další funkci pro zobrazení na listu vlastností. (Všimněte si, že i když je instalovatelná položka možností, vytvoří Unidrv reprezentaci funkce pro ni v listu vlastností.) Tato syntetizovaná funkce Unidrv je identifikována řetězcem dodaným s *InstallableFeatureName. Tato funkce poskytuje dvě možnosti: Nainstalované a Nenainstalované a umožňuje uživateli vybrat jednu z těchto možností. Řetězce "Installed" a "Not installed" jsou zadány s atributy *InstalledOptionName a *NotInstalledOptionName, abyste je mohli upravit, pokud je vhodnější jiný text.

V našem příkladu by tedy seznam vlastností obsahoval funkci vstupního zásobníku s popiskem Vstupní zásobník, který obsahuje dvě možnosti, označené automatický podavač a podavač na obálky. Seznam vlastností by také obsahoval další funkci pod označením volitelný zásobník obálekse dvěma možnostmi: Nainstalováno a Nenainstalováno. Uživatel může vybrat zásobník obálek pod vstupním zásobníkem pouze pokud nejprve vybere Nainstalovaný pod volitelným zásobníkem obálek.

Někdy je nutné označit, že některé instalovatelné možnosti nelze nainstalovat současně nebo že určitá neinstalovatelná možnost nelze vybrat, pokud je nainstalována některá jiná instalovatelná možnost. Pro řešení těchto situací použijte položky GPD, které určují omezení možností .

Nemůžete použít *Instalovatelné? atribut s volitelnými funkcemi, které vyžadují položku *DisabledFeatures. U těchto funkcí musíte explicitně zadat volitelnou funkci s možnostmi Nainstalováno a Nenainstalováno. Předpokládejme například, že tiskárna má volitelnou duplexní jednotku. Duplexní funkce (viz Standardní funkce) musí být zakázána, pokud není nainstalovaná duplexní jednotka. Je nutné definovat funkci Volitelná duplexní jednotka s možnostmi Nainstalované a Nenainstalované. V položce "Nenainstalováno" *Možnost byste zahrnuli položku *DisabledFeatures pro duplexní funkci. Lze použít následující položky GPD:

*Feature: DuplexUnit
{
    *ConflictPriority: 3   *% Make priority higher than Duplex feature
    *Name: "Optional Duplexing Unit"
    *Option: Installed
    {
        *Name: "Installed"
    }
    *Option: NotInstalled
    {
        *Name: "Not Installed"
        *DisabledFeatures: LIST(Duplex)
        *Constraints: LIST (Duplex.LongEdge, Duplex.ShortEdge)
    }
}

Nezapomeňte také zadat všechny relevantní omezení možností, jak je znázorněno.