Dela via


Hantera installationsbara funktioner och alternativ

Viktig

Den moderna utskriftsplattformen är Windows bästa sätt att kommunicera med skrivare. Vi rekommenderar att du använder Microsofts IPP-drivrutin för inkorgsklass tillsammans med Print Support Apps (PSA) för att anpassa utskriftsupplevelsen i Windows 10 och 11 för enhetsutveckling av skrivare.

Mer information finns i designguiden för Print-supportappen.

Vissa av en skrivares funktioner eller alternativ kan vara installationsbara. En skrivare kan till exempel acceptera en valfri kuvertmatare som kanske eller kanske inte är ansluten. Den här kuvertmataren måste beskrivas i en GPD-fil på två sätt:

  • Som ett alternativ för inputbin-funktionen.

  • Som en installationsbar "funktion" (även om det verkligen är ett alternativ), vilket gör att användaren kan ange om den faktiskt är installerad.

Först, för att ange kuvertmataren, tillsammans med en automatisk matare, som alternativ till InputBin-funktionen, kan följande GPD-poster användas.

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

För att göra kuvertmataren installerbar krävs ytterligare GPD-poster, enligt följande:

*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"
    }
}

I posten *Alternativ för kuvertmataren har två attribut lagts till:

  • *Installable? -attributet anger att alternativet kan installeras.

  • Attributet *InstallableFeatureName anger en textsträng som Unidrv visar så att användaren kan ange om alternativet faktiskt är installerat.

När *Installable? är inställt på TRUE- för en funktion eller ett alternativ, skapar Unidrv ytterligare en funktion för egenskapsbladets visning. (Observera att även om det installationsbara objektet är ett alternativ skapar Unidrv en funktionsrepresentation för det i egenskapsbladet.) Den här Unidrv-syntetiserade funktionen identifieras av strängen som medföljer *InstallableFeatureName. Funktionen innehåller två alternativ, "Installerad" och "Inte installerad", och gör att användaren kan välja ett av dessa alternativ. Strängarna "Installerad" och "Inte installerad" anges med attributen *InstalledOptionName och *NotInstalledOptionName så att du kan ändra dem om annan text är lämpligare.

I vårt exempel skulle egenskapsbladet innehålla en InputBin-funktion, märkt Inputfack, som innehåller två alternativ, märkta Automatisk matare och Kuvertmatare. Egenskapsbladet skulle också innehålla en ytterligare funktion, märkt Valfri kuvertmatare, med två alternativ, märkta Installerad och Inte installerad. Användaren kan bara välja kuvertmatare under inmatningsfack om de först väljer Installerad under valfri kuvertmatare.

Ibland är det nödvändigt att ange att vissa installationsalternativ inte kan installeras samtidigt, eller att ett visst alternativ som inte kan installeras inte kan väljas om något annat installationsalternativ är installerat. För att hantera dessa situationer använder du GPD-poster som anger begränsningar för alternativ .

Du kan inte använda attributet *Installable? med valfria funktioner som kräver en *DisabledFeatures-anteckning. För dessa funktioner måste du uttryckligen ange den valfria funktionen med alternativen "Installerad" och "Inte installerad". Anta till exempel att en skrivare har en valfri duplexenhet. Duplex-funktionen (se Standardfunktioner) måste inaktiveras om duplex-enheten inte är installerad. Du måste definiera en funktion för valfri duplexingenhet med alternativen "Installerad" och "Inte installerad". I '*Alternativ*'-posten "Inte installerad" skulle du inkludera en *DisabledFeatures-post för funktionen Duplex. Följande GPD-poster kan användas:

*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)
    }
}

Se även till att ange eventuella relevanta alternativbegränsningar, som illustreras.