Kolejność wykonywania poleceń
Ważny
Nowoczesna platforma drukowania jest preferowanym sposobem komunikacji z drukarkami w systemie Windows. Zalecamy używanie sterownika klasy skrzynki odbiorczej IPP firmy Microsoft wraz z aplikacjami do obsługi drukowania (PSA), aby dostosować środowisko drukowania w systemie Windows 10 i 11 na potrzeby opracowywania urządzeń drukarki.
Aby uzyskać więcej informacji, zapoznaj się z przewodnikiem projektowania aplikacji wspierających druk .
Polecenia drukarki muszą być wysyłane do sprzętu drukarki w sensownej kolejności. W przypadku większości nazw poleceń zdefiniowanych w języku GPD unidrv wie, kiedy wysłać sekwencję ucieczki polecenia do drukarki. Istnieją dwa wyjątki:
polecenia konfiguracji drukarki
W przypadku obu tych typów poleceń należy określić kolejność wykonywania poleceń.
Kolejność wykonywania poleceń składa się z dwóch składników — nazwy sekcji zadania i numeru kolejności sekwencji. Sterownik Unidrv dzieli każde zadanie drukowania na sześć sekcji. Dla każdej sekcji Unidrv wysyła drukarkę polecenia przypisane do sekcji w określonej sekwencji. Zdefiniowano następujące sekcje:
USTAWIENIA PRACY
Polecenia przypisane do sekcji JOB_SETUP są wysyłane raz na zadanie. Są to pierwsze polecenia wysyłane po rozpoczęciu nowego zadania. Te polecenia są wysyłane z poziomu implementacji unidrv funkcji DrvStartDoc.
KONFIGURACJA_DOKUMENTU
Polecenia przypisane do sekcji DOC_SETUP są wysyłane przed wysłaniem pierwszej strony dokumentu. Polecenia są wysyłane z poziomu implementacji funkcji DrvStartDoc z unidrv. (Te polecenia są również wysyłane po wywołaniu funkcji Win32 ResetDC przez aplikację. Polecenia w tej sekcji nie mogą usuwać pobranych informacji, takich jak czcionki nietrwałe i wzorce).
USTAWIENIA_STRONY
Polecenia przypisane do sekcji PAGE_SETUP są wysyłane na początku każdej nowej strony przed rozpoczęciem rysowania. Te polecenia są wysyłane z poziomu implementacji Unidrv funkcji DrvStartPage.
ZAKOŃCZ_STRONĘ
Polecenia przypisane do sekcji PAGE_FINISH są wysyłane na końcu każdej strony po zakończeniu rysowania. Polecenia te są wysyłane z implementacji Unidrv funkcji DrvSendPage.
DOC_FINISH
Polecenia przypisane do sekcji DOC_FINISH są wysyłane po wysłaniu ostatniej strony dokumentu. Polecenia są wysyłane z implementacji Unidrv funkcji DrvEndDoc. (Polecenia w tej sekcji nie mogą usuwać pobranych informacji, takich jak czcionki nietrwałe i wzorce).
ZADANIE_ZAKOŃCZONE
Polecenia przypisane do sekcji JOB_FINISH są wysyłane raz na zadanie. Są to ostatnie polecenia wysyłane po zakończeniu zadania. Te polecenia są wysyłane z poziomu implementacji funkcji DrvEndDoc z unidrv.
W każdej z tych sekcji polecenia są wykonywane w kolejności wskazywanej przez ich numery sekwencji.
Aby określić sekcję i numer sekwencji polecenia, użyj atrybutu *Order, który jest opisany w Atrybuty poleceń. Format jest:
*Order: NazwaSekcji.NumerSekwencji
gdzie SectionName jest jedną z JOB_SETUP, DOC_SETUP, PAGE_SETUP, PAGE_FINISH, DOC_FINISH lub JOB_FINISH, a SequenceNumber jest wartością liczbową.
Numery sekwencji nie muszą być kolejne, ale każdy numer określony w sekcji musi być unikatowy. Polecenia w sekcji są wykonywane od tej z najniższym numerem sekwencji do tej z najwyższym numerem sekwencji. Na przykład następujące wpisy wskazują, że opcje funkcji InputBin, PaperSizei Rozdzielczość są przypisywane do sekcji DOC_SETUP i wysyłane w określonej kolejności:
*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>"
}
}
...
}