Dela via


Kommandokörningsordning

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 utskriftssupportapp v1 och v2.

Skrivarkommandon måste skickas till skrivarmaskinvaran i en meningsfull ordning. För de flesta kommandonamn som definierats i GPD-språket vet Unidrv när kommandots escape-sekvens ska skickas till skrivaren. Det finns två undantag:

Kommandot för val av alternativ

skrivarkonfigurationskommandon

För båda dessa kommandotyper måste du ange i vilken ordning kommandona ska köras.

Kommandokörningsordning består av två komponenter – ett jobbavsnittsnamn och ett sekvensordningsnummer. Unidrv-drivrutinen delar upp varje utskriftsjobb i sex avsnitt. För varje avsnitt skickar Unidrv skrivaren de kommandon som tilldelats avsnittet i den angivna sekvensen. Följande avsnitt definieras:

Jobbinställning
Kommandon som tilldelats avsnittet JOB_SETUP skickas en gång per jobb. De är de första kommandona som skickas när ett nytt jobb börjar. Dessa kommandon skickas inifrån Unidrvs implementering av funktionen DrvStartDoc.

DOC_SETUP
Kommandon som tilldelats avsnittet DOC_SETUP skickas innan den första sidan i ett dokument skickas. Kommandona skickas inifrån Unidrvs implementering av funktionen DrvStartDoc. (Dessa kommandon skickas också efter att ett program anropar funktionen Win32 ResetDC. Kommandon i det här avsnittet får inte ta bort nedladdad information, till exempel mjuka teckensnitt och mönster.)

Sidinställningar
Kommandon som tilldelats avsnittet PAGE_SETUP skickas i början av varje ny sida innan ritningen börjar. Dessa kommandon skickas inifrån Unidrvs implementering av funktionen DrvStartPage.

PAGE_FINISH
Kommandon som tilldelats avsnittet PAGE_FINISH skickas i slutet av varje sida när ritningen är klar. Dessa kommandon skickas inifrån Unidrvs implementering av funktionen DrvSendPage.

DOKUMENT_SLUT
Kommandon som tilldelats avsnittet DOC_FINISH skickas när den sista sidan i ett dokument har skickats. Kommandona skickas inifrån Unidrvs implementering av funktionen DrvEndDoc. (Kommandon i det här avsnittet får inte ta bort nedladdad information, till exempel mjuka teckensnitt och mönster.)

JOBB_AVSLUTAD
Kommandon som tilldelats avsnittet JOB_FINISH skickas en gång per jobb. De är de sista kommandona som skickas när ett jobb slutar. Dessa kommandon skickas inifrån Unidrvs implementering av funktionen DrvEndDoc.

I vart och ett av dessa avsnitt körs kommandon i den ordning som anges av deras sekvensnummer.

Om du vill ange ett kommandos avsnitt och sekvensnummer använder du attributet *Order, som beskrivs i Kommandoattribut. Formatet är:

*Order: Avsnittsnamn.Sekvensnummer

där SectionName är en av JOB_SETUP, DOC_SETUP, PAGE_SETUP, PAGE_FINISH, DOC_FINISH eller JOB_FINISH och SequenceNumber är ett numeriskt värde.

Sekvensnummer behöver inte vara på varandra följande, men varje tal som anges i ett avsnitt måste vara unikt. Kommandon i ett avsnitt körs från det som har det lägsta sekvensnumret till det med högst. Följande poster anger till exempel att alternativ för funktionerna InputBin, PaperSizeoch Resolution tilldelas till avsnittet DOC_SETUP och skickas i angiven ordning:

*Feature: InputBin
{
    *Option: Auto
    {
        *Name: "Auto Tray"
        *Command: CmdSelect
        {
            *Order: DOC_SETUP.50
            *Cmd: "<1B>(1<010014>"
        }
    }
    ...
}
*Feature: PaperSize
{
    *DefaultOption: Letter
    *Option: Letter
    {
        *Name: "Letter size"
        *Command: CmdSelect
        {
            *Order: DOC_SETUP.60
            *Cmd: "<1B>(g<0300>n<01>r"
        }
    }
    ...
}
*Feature: Resolution
{
    *DefaultOption: 360dpi
    *Option: 360dpi
    {
        *Name: "360 dpi x 360dpi"
        *Command: CmdSelect
        {
            *Order: DOC_SETUP.70
            *Cmd: "<1B>(d<020001>"
        }
    }
    ...
}