Windows Vista에 대한 새로운 루트 수준 전용 GPD 특성

Important

최신 인쇄 플랫폼은 Windows에서 프린터와 통신하는 데 선호되는 수단입니다. 프린터 장치 개발을 위해 Windows 10 및 11의 인쇄 환경을 사용자 지정하려면 MICROSOFT의 IPP 받은 편지함 클래스 드라이버와 PSA(인쇄 지원 앱)를 사용하는 것이 좋습니다.

자세한 내용은 최신 인쇄 플랫폼 및 인쇄 지원 앱 디자인 가이드를 참조하세요.

다음 목록에서는 Windows Vista부터 새로운 GPD 특성에 대해 설명합니다. 이전 버전의 Windows Vista 버전과 이전 버전과의 호환성을 유지하려면 다음 코드로 이러한 특성을 둘러싸야 합니다.

*Ifdef: WINNT_60 ... *Endif: WINNT_60 blocks

PrintProcDuplexOptions

PrintProcDuplexOptions 특성은 인쇄 프로세서의 다양한 이중 옵션을 제어합니다. 이 특성에는 다음 값 중 하나가 있을 수 있습니다.

1: 역방향 이중에 대한 역방향 페이지

2: 가능한 경우 빈 추가 페이지 생성 안 함

3: 위의 두 가지 모두

0: 위의 내용 없음

PrintProcDuplexOptions가 1이면 인쇄 프로세서가 역방향 이중에서 페이지를 역방향으로 처리해야 하는지 여부를 제어합니다.

n-up = 1이 있는 4페이지 짜리 문서를 인쇄해야 하며 역방향 인쇄 및 이중 인쇄를 사용하려는 경우를 가정합니다. 역방향 인쇄를 원하므로 첫 번째 페이지 앞의 마지막 페이지를 인쇄하려고 합니다. 이중 인쇄를 원하기 때문에 용지 한 장의 두 페이지를 인쇄하려고 합니다. 인쇄 프로세서는 다음 두 가지 형식 중 하나로 페이지를 재생할 수 있습니다(각 숫자 쌍은 용지 한 장의 양면에 인쇄되는 두 페이지를 나타냅니다.)

  • 형식 1: (4,3),(2,1)

  • 형식 2: (3,4),(1,2)

Windows Vista 이전에는 인쇄 프로세서가 순서를 2 [(3,4),(1,2)] 형식으로 인쇄합니다. 그러나 Windows Vista 이상에서 기본 형식은 형식 1 [(4,3),(2,1)]입니다. 이 변경은 많은 프린터에서 형식이 2인 잘못된 출력을 가지고 있기 때문에 발생했습니다. 즉, 인쇄되는 페이지는 적절한 순서로 정렬되지 않습니다.

그러나 프린터가 형식 1에서 제대로 작동하는 경우 Windows Vista 이상에서는 아무것도 변경할 필요가 없습니다. 그러나 프린터가 형식 1에서 잘못 작동하고 형식 2로 되돌리려는 경우 GPD 파일에 다음 코드 예제를 추가합니다.

*Ifdef: WINNT_60
*PrintProcDuplexOptions: 1
*Endif: WINNT_60

형식 1은 일부 방향 또는 입력 및 출력 트레이의 일부 조합에서 더 잘 작동할 수 있으며 형식 2는 다른 조합에서 더 잘 작동할 수 있습니다. 따라서 PrintProcDuplexOptions 특성을 switch/case 구문에 넣을 수 있습니다.

Windows Vista Unidrv 이전 드라이버의 경우 Windows Vista 이전 인쇄 프로세서가 있는 경우 형식 2가 기본값이며 형식을 변경할 수 없습니다. 그렇지 않으면 Windows Vista 인쇄 프로세서가 있는 경우 형식 1이 기본값이며 형식을 변경할 수 없습니다.

Windows Vista Unidrv 드라이버의 경우 Windows Vista 이전 인쇄 프로세서가 있는 경우 형식 2가 기본값이며 GPD 특성은 무시됩니다. 그렇지 않으면 Windows Vista 인쇄 프로세서가 있는 경우 형식 1이 기본값이지만 PrintProcDuplexOptions 특성을 사용하여 형식을 변경할 수 있습니다.

PrintProcDuplexOptions가 2이면 특정 이중 시나리오에서 빈 페이지 생성을 방지합니다.

이 특성은 이중 인쇄를 수행할 때 빈 페이지를 프린터로 보낼지 여부를 제어합니다. 예를 들어 작업이 한 페이지 작업이고 이중이 켜진 경우(n-up = 1이라고 가정) 시트의 한쪽만 인쇄해야 합니다. 현재 프린터는 한쪽을 인쇄한 다음, 반대쪽에 빈 페이지를 생성합니다. (인쇄 작업이 duplex=on으로 시작되었으므로 프린터에서 시트를 꺼내기 전에 두 페이지가 필요합니다. 두 번째 페이지가 인쇄되지 않으면 일부 프린터가 계속 대기합니다.) 현재 솔루션의 단점은 다음과 같습니다.

  • 생성된 페이지는 회계 소프트웨어 및 프린터 내의 페이지 카운터에서 부정확한 페이지 수를 발생합니다.

  • 페이지가 프린터의 중간(일부 휴렛 팩커드 DeskJet 스타일 프린터)에서 나오면 프린터에서 다시 끌어오려고 시도하는 동안 사용자가 이 페이지를 꺼내려고 할 수 있습니다. 이 경우 하드웨어 문제가 발생할 수 있습니다.

GPD 파일에서 *PrintProcDuplexOptions: 2를 지정하여 이전 문제를 방지할 수 있습니다.

이 특성을 설정하더라도 빈 페이지 최적화는 다음과 같은 제한된 경우에만 수행됩니다.

  1. 역방향 인쇄의 경우 전체 작업이 용지의 한 면에 맞을 수 있는 경우에만 빈 페이지 최적화가 수행됩니다(예: n-up=1이 있는 한 페이지 작업 또는 n-up =4가 있는 4페이지 작업). 작업에 둘 이상의 시트가 필요한 경우 최적화가 수행되지 않습니다(프린터 페이지가 부정확한 순서로 인쇄되기 때문). 예를 들어 3페이지로 구성된 작업의 경우 4,3,2,000><>개 대신 3,2,1<번 순서로 페이지를 인쇄할 수 있습니다.

  2. 인쇄 프로세서가 복사본을 시뮬레이션해야 하는 경우 빈 페이지 최적화가 수행되지 않습니다. 필요한 복사본 수가 인쇄 프로세서에서 만들 수 있는 복사본 수보다 많은 경우 인쇄 프로세서는 복사본을 시뮬레이션합니다.

    다음 상황은 시뮬레이션이 발생하고 빈 페이지가 생성되는 경우의 예입니다(필요한 경우).

    • 복사본을 만들 수 없는 프린터의 복사본 2개

    시뮬레이션이 발생하지 않고 추가 페이지 생성을 억제할 수 있는 경우의 예는 다음과 같습니다.

    • 복사본을 만들 수 없는 프린터에 대한 단일 복사 작업
    • 두 개 이상의 복사본을 만들 수 있는 프린터에 대한 5개 복사 작업

PrintProcDuplexOptions 사용

*Ifdef: WINNT_60
*PrintProcDuplexOptions: 2
*Endif: WINNT_60 

경우에 따라 다른 경우에는 추가 페이지 인쇄를 신경 쓰지 않을 수 있습니다. 따라서 PrintProcDuplexOptions 특성을 switch/case 구문에 넣을 수 있습니다.

Windows Vista Unidrv 이전 드라이버의 경우 Windows Vista 이전 인쇄 프로세서가 있는 경우 필요한 경우 프린터가 빈 페이지를 추가로 인쇄하므로 이 동작을 변경할 수 없습니다. 그렇지 않으면 Windows Vista 인쇄 프로세서가 있는 경우 필요한 경우 프린터에서 빈 페이지를 추가로 인쇄하고 이 동작을 변경할 수 없습니다.

Windows Vista Unidrv 드라이버의 경우 Windows Vista 이전 인쇄 프로세서가 있는 경우 필요한 경우 프린터에서 빈 페이지를 추가로 인쇄하고 GPD 특성은 무시됩니다. 그렇지 않으면 Windows Vista 인쇄 프로세서가 있고 적절한 GPD 특성과 적절한 조건(즉, 빈 페이지 인쇄 방지에 대해 앞에서 설명한 조건)이 있는 경우 프린터는 빈 페이지를 인쇄하지 않습니다.

PreAnalysisOptions

PreAnalysisOptions 특성은 다음 값 중 하나를 가질 수 있습니다.

0: 모든 사전 분석 모드를 사용하지 않도록 설정합니다.

1: 기본 모드입니다. 단색 z 순서 텍스트 분석 및 빈 대역 최적화를 사용하도록 설정합니다. 이 모드는 다운로드 가능한 글꼴 또는 디바이스 글꼴 지원 및 고해상도(600dpi 이상), 24 bpp 렌더링 모드를 사용하는 디바이스에 대해 사용하도록 설정됩니다.

2: 24 bpp ImageProcessing 콜백 함수에 대해 1 bpp 최적화를 사용하도록 설정합니다.

4: 디바이스 StretchBlt 지원을 사용하도록 설정합니다.

8: 공급업체 사전 분석 모드를 사용하도록 설정합니다.

16: ImageProcessing 콜백 함수를 호출하기 전에 밴드가 24 bpp로 변환되는 1 bpp에 대한 디버그 모드를 사용하도록 설정합니다.

UseBMPFontCompression?

UseBMPFontCompression? 특성은 글꼴을 비트맵으로 다운로드할 때 Unidrv에서 데이터를 압축해야 하는지 여부를 제어합니다. UseBMPFontCompression기본값은 FALSE입니다. 즉, GPD 파일에 이 특성이 없으면 Unidrv에서 압축을 수행하지 않습니다. 이 기본값은 비트맵 글꼴 압축 기능이 없는 이전 버전의 Unidrv와의 호환성을 유지합니다. 프린터에서 비트맵 글꼴 압축을 지원하는 경우에만 이 특성을 TRUE 로 설정해야 합니다. 압축된 비트맵 문자 데이터는 압축된 실행 길이-줄 반복 형식입니다.

UseMode5Compression?

UseMode5Compression? 특성은 UniDrv에서 모드 5 압축을 사용해야 하는지 여부를 제어합니다. 모드 5(또는 메서드 5) 압축은 다른 여러 압축 방법(예: Unencoded, TIFF 또는 Delta-Row)을 결합하여 사용할 수 있도록 하는 적응형 압축입니다. UseMode5Compression기본값은 FALSE입니다. 즉, 이 특성이 GPD에 없는 경우 Unidrv가 적응 압축을 수행하지 않습니다. 이 기본값은 적응 압축 기능이 없는 이전 버전의 Unidrv와의 호환성을 유지합니다. 프린터에서 적응형 압축을 지원하는 경우에만 이 특성을 TRUE 로 설정해야 합니다.

UseHPGLPolylineEncoding?

UseHPGLPolylineEncoding? 특성은 Unidrv에서 폴리라인 인코딩을 사용해야 하는지 여부를 제어합니다. HP-GL/2는 그리기 벡터에 대한 펜 업/펜 다운/그리기 절대/그리기 상대 명령을 지원합니다. PE(Polyline encoded) 명령은 벡터를 나타내는 보다 효율적인 방법입니다.

UseHPGLPolylineEncoding기본값은 FALSE입니다. 즉, 이 특성이 GPD에 없는 경우 Unidrv는 PE 명령을 사용하지 않습니다. 이 기본값은 PE 명령을 지원하지 않는 이전 버전의 Unidrv와의 호환성을 유지합니다. 프린터에서 폴리라인 인코딩을 지원하는 경우에만 이 값을 TRUE 로 설정해야 합니다.

PrintSchemaPrivateNamespaceURI

PrintSchemaPrivateNamespaceURI 특성은 PrintTicket 또는 PrintCapabilities에서 프라이빗 PPD 기능 또는 옵션을 노출하는 데 핵심 드라이버가 사용해야 하는 프라이빗 네임스페이스 URI를 정의합니다. 특성은 GPD 문서의 루트에 나타나야 하며 PrintTickets 및 PrintCapabilities 문서에서 네임스페이스를 정의하는 데 사용할 URI의 ASCII 표현을 포함해야 합니다. 그러면 해당 URI는 공용 스키마에 대한 명시적 매핑이 없거나 핵심 드라이버가 인식하지 못하는 모든 기능 및 옵션과 연결됩니다.

PrintSchemaKeywordMap

PrintSchemaKeywordMap 특성은 GPD 파일의 기능 및 옵션 구문 아래에 나타납니다. 이 특성은 프린터 정의 기능과 함께 사용해야 하는 공용 인쇄 스키마 이름을 나타냅니다. PrintSchemaKeywordMap 특성을 사용하여 PrintTicket에서 Duplex 및 Collate를 제외한 GPD 파일에 지정된 옵션의 이름을 바꿀 수 있습니다.

GPD 파서는 페이지 크기 및 색을 포함하여 명시적으로 인식되는 기능에 대해 이 특성을 무시합니다.

모든 값은 따옴표로 묶어야 합니다. GPD에 지정된 코드 페이지(있는 경우)를 사용하여 유니코드로 변환됩니다. 특성의 중복 정의는 다른 GPD 특성과 동일한 방식으로 확인됩니다. 읽은 마지막 정의에 우선 순위가 지정됩니다.

GPD 파일에서 이미 사용 중인 인쇄 스키마 키워드에 기능을 매핑하는 경우 해당 PrintCapabilities 문서에 해당 기능이 두 번 이상 나열될 수 있습니다. 여러 번 발생하면 혼동될 수 있으므로 GPD 파일에 사용되는 인쇄 스키마 키워드에 기능을 매핑해서는 안 됩니다.

GPD 파서는 InputBin 기능에 대한 FORMSOURCE 옵션을 자동으로 생성하고 인쇄 스키마의 자동 선택 키워드에 매핑합니다. GPD 파일에 PrintSchemaKeywordMap 특성을 사용하여 옵션을 인쇄 스키마 키워드에 매핑하는 InputBin 옵션이 포함된 경우 인쇄 스키마의 기능에는 디바이스 네임스페이스의 FORMSOURCE 옵션이 포함됩니다. AutoSelect는 PrintCapabilities 문서에 표시되고 GPD 파일의 PrintSchemaKeywordMap 특성에 지정된 옵션을 참조합니다.

다음 코드 예제에서는 레이아웃을 표시 하는 부분 GPD 파일을 보여 옵니다.

*Feature: HPSTAPLER
{
    *Name: "Staple"
    *DefaultOption: Off
    * PrintSchemaKeywordMap: "Staple"

    *Option: Off
    {
        *Name: "Off"
        * PrintSchemaKeywordMap: "Off"
    }
 
    *Option: On
    {
        *Name: "On"
        * PrintSchemaKeywordMap: "On"
    }
}

IsXPSDriver

IsXPSDriver 특성은 다음 GPD 구문을 사용합니다.

*IsXPSDriver?: TRUE | FALSE

Microsoft Win32 GDI 드라이버와 새 XPSDrv 드라이버 모두에 Windows Vista unidrv 구성 모듈(Unidrvui.dll)을 사용할 수 있습니다. XPSDrv 드라이버에 Unidrv 구성 모듈을 사용하려면 XPSDrv 드라이버의 GPD 데이터 파일에서 IsXPSDriver 특성을 지정하고 해당 값을 TRUE설정해야 합니다.

예를 들어 XPS 드라이버가 있는 경우 다음 코드를 사용합니다.

*IsXPSDriver?: TRUE

Win32 GDI 드라이버에 Unidrv 구성 모듈을 사용하려면 이 특성을 지정할 필요가 없습니다.

UseImageForHatchBrush?

UseImageForHatchBrush? 특성은 다음 GPD 구문을 사용합니다.

*Ifdef: WINNT_60
*UseImageForHatchBrush?: TRUE
*Endif: WINNT_60 

Microsoft Windows Server 2003 또는 Windows XP에서 Unidrv가 HP-GL/2 모드로 인쇄될 때 DrvRealizeBrush 함수에서 해치 브러시를 받으면 Unidrv는 프린터가 적절한 해치 브러시를 선택하도록 명령을 보냅니다. Unidrv는 해치 브러시가 렌더링되는 방법을 제어하지 않습니다. 예를 들어 선 사이의 간격은 일반적으로 해상도에 의해 제어됩니다. 해상도가 높을수록 간격이 작아지고 해상도가 낮을수록 간격이 커집니다. 따라서 다른 해상도를 사용하는 경우 문서가 다르게 인쇄될 수 있습니다.

Windows Vista에서 GPD가 UseImageForHatchBrush? 특성을 지정하는 경우 Unidrv는 해치 브러시를 비트맵 표면에 렌더링한 다음 해당 비트맵을 디바이스로 보냅니다. 따라서 Unidrv는 해치 브러시가 렌더링되는 방법을 제어할 수 있습니다.

ReverseBandOrder?

ReverseBandOrder? 특성은 다음 GPD 구문을 사용합니다.

*Ifdef: WINNT_60
*ReverseBandOrder?: TRUE
*Endif: WINNT_60 

ReverseBandOrder의 값은 역방향 밴딩이 사용되는지 여부를 나타내는 TRUE 또는 FALSE입니다. 이 특성으로 인해 밴딩이 역순으로 발생합니다. 예를 들어 세로 페이지의 경우 위쪽에서 아래쪽이 아닌 맨 위에서 위로 밴딩이 발생합니다.

이 특성은 기본적으로 ReverseBandOrderForEvenPages와 동일하나요? 단 , ReverseBandOrder? 는 이중이 활성화되지 않은 경우에도 고려됩니다(ReverseBandOrderForEvenPages는 이중이 ON인 경우에만 작동함). 모든 페이지에 대해 작동합니다(ReverseBandOrderForEvenPages는 짝수 페이지에서만 작동). ReverseBandOrder를 사용하는 방법에 대한 자세한 내용 및 기타 관련 정보는 *ReverseBandOrderForEvenPages?를 참조하세요. 특히 플러그 인은 검색 줄과 검색 줄의 비트를 역방향으로 사용해야 합니다.

*ReverseBandOrderForEvenPages의 조합을 사용할 수 있나요? 및 *ReverseBandOrder?.

ReverseBandOrderTRUE설정되면 모든 페이지에 대해 줄무늬가 반전됩니다.

ReverseBandOrderForEvenPagesTRUE설정하면 프린터에서 이중 인쇄를 하는 경우 짝수 페이지로도 줄무늬가 반전됩니다. 이중을 설정 하지 않으면 ReverseBandOrderForEvenPages? 설정이 무시됩니다.

ReverseBandOrder?ReverseBandOrderForEvenPages가 모두 설정되면 다음이 발생합니다.

  • 이중이 ON이면 홀수 페이지(즉, 1, 3, 5, 7 등)에 대해 역방향 밴딩이 수행됩니다.

  • 이중이 OFF이면 모든 페이지에 대해 역방향 밴딩이 수행됩니다.

BidiQueryFile

BidiQueryFile 특성은 다음 GPD 구문을 사용합니다.

*BidiQueryFile: <GPD or GDL file name>

BidiQueryFile을 사용하여 프린터 드라이버의 자동 구성 BidiQuery 또는 BidiResponse 데이터를 포함하는 GPD 또는 GDL 파일 이름을 지정합니다. GPD 또는 GDL 파일 이름은 경로를 지정해서는 안 됩니다. 자동 구성 데이터가 드라이버의 DataFile GPD 파일 내에 포함된 경우 해당 GPD 파일을 BidiQueryFile 특성의 값으로 지정할 수도 있습니다.

다음 코드 예제에서는 부분 GPD 파일에서이 특성의 예제를 보여줍니다.

*Ifdef: WINNT_60
*BidiQueryFile: "ACnfgUni.GDL"
*Endif: WINNT_60