명령 실행 순서
Important
최신 인쇄 플랫폼은 Windows에서 프린터와 통신하는 데 선호되는 수단입니다. 프린터 장치 개발을 위해 Windows 10 및 11의 인쇄 환경을 사용자 지정하려면 MICROSOFT의 IPP 받은 편지함 클래스 드라이버와 PSA(인쇄 지원 앱)를 사용하는 것이 좋습니다.
자세한 내용은 최신 인쇄 플랫폼 및 인쇄 지원 앱 디자인 가이드를 참조하세요.
프린터 명령을 의미 있는 순서로 프린터 하드웨어로 보내야 합니다. GPD 언어로 정의된 대부분의 명령 이름에 대해 Unidrv는 명령의 이스케이프 시퀀스를 프린터로 보낼 시기를 알고 있습니다. 두 가지 예외 사항이 있습니다.
이러한 두 명령 형식에 대해 명령을 실행할 순서를 지정해야 합니다.
명령 실행 순서는 작업 섹션 이름과 시퀀스 순서 번호라는 두 가지 구성 요소로 구성됩니다. Unidrv 드라이버는 각 인쇄 작업을 6개의 섹션으로 나눕니다. 각 섹션에 대해 Unidrv는 지정된 시퀀스로 섹션에 할당된 명령을 프린터에 보냅니다. 다음 섹션이 정의되어 있습니다.
JOB_SETUP
JOB_SETUP 섹션에 할당된 명령은 작업당 한 번 전송됩니다. 새 작업이 시작될 때 전송되는 첫 번째 명령입니다. 이러한 명령은 DrvStartDoc 함수의 Unidrv 구현 내에서 전송됩니다.
DOC_SETUP
DOC_SETUP 섹션에 할당된 명령은 문서의 첫 페이지를 보내기 전에 전송됩니다. 명령은 DrvStartDoc 함수의 Unidrv 구현 내에서 전송됩니다. (이러한 명령은 애플리케이션이 Win32 ResetDC 함수를 호출한 후에도 전송됩니다. 이 섹션의 명령은 소프트 글꼴 및 패턴과 같은 다운로드한 정보를 제거해서는 안 됩니다.)
PAGE_SETUP
PAGE_SETUP 섹션에 할당된 명령은 그리기를 시작하기 전에 각 새 페이지의 시작 부분에 전송됩니다. 이러한 명령은 Unidrv의 DrvStartPage 함수 구현 내에서 전송됩니다.
PAGE_FINISH
PAGE_FINISH 섹션에 할당된 명령은 드로잉이 완료된 후 각 페이지의 끝에 전송됩니다. 이러한 명령은 DrvSendPage 함수의 Unidrv 구현 내에서 전송됩니다.
DOC_FINISH
문서의 마지막 페이지를 보낸 후 DOC_FINISH 섹션에 할당된 명령이 전송됩니다. 명령은 DrvEndDoc 함수의 Unidrv 구현 내에서 전송됩니다. (이 섹션의 명령은 소프트 글꼴 및 패턴과 같은 다운로드한 정보를 제거해서는 안 됩니다.)
JOB_FINISH
JOB_FINISH 섹션에 할당된 명령은 작업당 한 번 전송됩니다. 작업이 종료되면 전송되는 마지막 명령입니다. 이러한 명령은 Unidrv의 DrvEndDoc 함수 구현 내에서 전송됩니다.
이러한 각 섹션 내에서 명령은 시퀀스 번호로 표시된 순서대로 실행됩니다.
명령의 섹션 및 시퀀스 번호를 지정하려면 명령 특성에 설명된 *Order 특성을 사용합니다. 형식:
*주문: SectionName.SequenceNumber
여기서 SectionName 은 JOB_SETUP, DOC_SETUP, PAGE_SETUP, PAGE_FINISH, DOC_FINISH 또는 JOB_FINISH 중 하나이며 SequenceNumber 는 숫자 값입니다.
시퀀스 번호는 연속될 필요는 없지만 섹션 내에 지정된 각 숫자는 고유해야 합니다. 섹션 내의 명령은 시퀀스 번호가 가장 낮은 명령부터 가장 높은 명령까지 실행됩니다. 예를 들어 다음 항목은 InputBin, PaperSize 및 Resolution 기능에 대한 옵션이 DOC_SETUP 섹션에 할당되고 지정된 순서로 전송됨을 나타냅니다.
*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>"
}
}
...
}