Delen via


Opdrachtuitvoeringsvolgorde

Belangrijk

Het moderne afdrukplatform is de voorkeursmiddel van Windows om te communiceren met printers. Het wordt aanbevolen de IPP-inboxklasse-driver van Microsoft te gebruiken, samen met Print Support Apps (PSA), om de afdrukervaring in Windows 10 en 11 aan te passen voor de ontwikkeling van printerapparaten.

Zie de Print support app design guidevoor meer informatie.

Printeropdrachten moeten in een zinvolle volgorde naar printerhardware worden verzonden. Voor de meeste opdrachtnamen die in de GPD-taal zijn gedefinieerd, weet Unidrv wanneer de escape-reeks van de opdracht naar de printer moet worden verzonden. Er zijn twee uitzonderingen:

De optieselectieopdracht

Printer configuratieopdrachten

Voor beide opdrachttypen moet u de volgorde opgeven waarin de opdrachten moeten worden uitgevoerd.

Opdrachtuitvoeringsvolgorde bestaat uit twee onderdelen: een taaksectienaam en een volgvolgordenummer. Het Unidrv-stuurprogramma verdeelt elke afdruktaak in zes secties. Voor elke sectie verzendt Unidrv de printer de opdrachten die aan de sectie zijn toegewezen, in de opgegeven volgorde. De volgende secties zijn gedefinieerd:

Taakinstelling
Opdrachten die zijn toegewezen aan de sectie JOB_SETUP worden eenmaal per taak verzonden. Dit zijn de eerste opdrachten die worden verzonden wanneer een nieuwe taak begint. Deze opdrachten worden verzonden vanuit de implementatie van Unidrv van de DrvStartDoc functie.

DOC_SETUP
Opdrachten die zijn toegewezen aan de sectie DOC_SETUP worden verzonden voordat de eerste pagina van een document wordt verzonden. De opdrachten worden verzonden vanuit de implementatie van unidrv van de drvStartDoc-functie. (Deze opdrachten worden ook verzonden nadat een toepassing de Win32 ResetDC-functie aanroept. Opdrachten in deze sectie mogen gedownloade informatie, zoals zachte lettertypen en patronen, niet verwijderen.)

pagina-instelling
Opdrachten die zijn toegewezen aan de sectie PAGE_SETUP worden aan het begin van elke nieuwe pagina verzonden voordat de tekening begint. Deze opdrachten worden verzonden vanuit de implementatie van Unidrv van de DrvStartPage functie.

PAGE_FINISH
Opdrachten die zijn toegewezen aan de sectie PAGE_FINISH worden aan het einde van elke pagina verzonden nadat de tekening is voltooid. Deze opdrachten worden verzonden vanuit de implementatie van unidrv van de DrvSendPage functie.

DOC_FINISH
Opdrachten die zijn toegewezen aan de sectie DOC_FINISH worden verzonden nadat de laatste pagina van een document is verzonden. De opdrachten worden verzonden vanuit de implementatie van Unidrv van de DrvEndDoc functie. (Opdrachten in deze sectie mogen gedownloade informatie, zoals zachte lettertypen en patronen, niet verwijderen.)

JOB_FINISH
Opdrachten die zijn toegewezen aan de sectie JOB_FINISH worden eenmaal per taak verzonden. Dit zijn de laatste opdrachten die worden verzonden wanneer een taak eindigt. Deze opdrachten worden verzonden vanuit de implementatie van unidrv van de drvEndDoc-functie.

In elk van deze secties worden opdrachten uitgevoerd in de volgorde die wordt aangegeven door hun volgnummers.

Als u de sectie en het volgnummer van een opdracht wilt opgeven, gebruikt u het kenmerk *Order, dat wordt beschreven in opdrachtkenmerken. De indeling is:

*Order: SectionName.SequenceNumber

waarbij SectionName een van JOB_SETUP, DOC_SETUP, PAGE_SETUP, PAGE_FINISH, DOC_FINISH of JOB_FINISH is en SequenceNumber een numerieke waarde is.

Volgnummers hoeven niet opeenvolgend te zijn, maar elk getal dat in een sectie is opgegeven, moet uniek zijn. Opdrachten in een sectie worden uitgevoerd van de sectie met het laagste volgnummer naar dat met de hoogste. De volgende vermeldingen geven bijvoorbeeld aan dat opties voor de InputBin-, PaperSize-en Resolutie- worden toegewezen aan de sectie DOC_SETUP en in de opgegeven volgorde worden verzonden.

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