GPD에서 HP-GL/2 벡터 그래픽 지원(PCL-5e) 사용

WINDOWS XP에서 HP-GL/2 벡터 지원을 사용하도록 설정하려면 다음 두 가지 작업을 수행해야 합니다.

  1. *Personality 특성을 PERSONALITY_HPGL2 설정합니다.

  2. HPGL2MODE 옵션이 있는 GraphicsMode 사용자 지정 기능을 정의합니다. 래스터 그래픽 지원도 제공하려면 RASTERMODE 옵션을 포함합니다.

다음과 같은 방식으로 성격 특성을 설정할 수 있습니다.

*Personality: =PERSONALITY_HPGL2

PERSONALITY_HPGL2 상수는 stdnames.gpd에 정의되어 있습니다.

다음 GPD 예제에서는 *Personality 특성을 설정하고 벡터 그래픽 모드와 래스터 그래픽 모드를 모두 사용하여 GraphicsMode 사용자 지정 기능을 정의하는 방법을 보여 줍니다. 전체 블록은 *Ifdef GPD 컴파일러 지시문에 의해 보호됩니다.

*Ifdef: WINNT_51
*Personality: =PERSONALITY_HPGL2
*Feature: GraphicsMode
{
    *rcNameID: =GRAPHICSMODE_DISPLAY
    *FeatureType: DOC_PROPERTY
    *HelpIndex: 12000
    *DefaultOption: HPGL2MODE
    *Option: HPGL2MODE
    {
        *rcNameID: =GRAPHICSMODE_HPGL2_DISPLAY
    }
    *Option: RASTERMODE
    {
        *rcNameID: =GRAPHICSMODE_RASTER_DISPLAY
    }
}
*Endif:

위의 지시문에 사용된 WINNT_51 매개 변수는 운영 체제 버전이 아닌 Unidrv 버전에 적용됩니다. Windows 2000에서 실행되는 Windows XP Unidrv 프린터 드라이버의 경우 WINNT_51 매개 변수가 정의되고 블록이 컴파일됩니다. 이전 Unidrv 버전의 경우 운영 체제 버전에 관계없이 이 매개 변수는 정의되지 않으며 블록이 컴파일되지 않습니다.

색 프린터에 대한 GPD 파일은 다음 일반 샘플과 같이 ColorMode 기능도 정의해야 합니다. 프린터의 특정 세부 정보에는 특정 값을 변경해야 할 수 있습니다.

*Feature: ColorMode
{
  *rcNameID: =COLOR_PRINTING_MODE_DISPLAY
  *HelpIndex: 12004
  *DefaultOption: 24bpp
  *Option: Mono
   {
     *rcNameID: =MONO_DISPLAY
     *DevNumOfPlanes: 1
     *DevBPP: 1
     *Color?: FALSE
     *Command: CmdSelect
      {
        *Order: PAGE_SETUP.16 
        *Cmd: "<1B>&b1M"
      }
   }
  *Option: 24bpp
   {
     *rcNameID: =24BPP_DISPLAY
     *DevNumOfPlanes: 1
     *DevBPP: 24
     *DrvBPP: 24
     *PaletteSize: 256
     *PaletteProgrammable?: TRUE
     *Command: CmdDefinePaletteEntry
      {
        *Cmd : "<1B>*v" %d{RedValue}"a"
+                       %d{GreenValue}"b"
+                       %d{BlueValue}"c"
+                       %d{PaletteIndexToProgram}"I"
 }
     *Command: CmdSelectPaletteEntry { *Cmd : "<1B>*v" 
+                        %d{CurrentPaletteIndex}"S" }
     *Command: CmdSetSrcBmpWidth { *Cmd : "<1B>*r" 
+                        %d{RasterDataWidthInBytes / 3}"S" }
     *Command: CmdSelect
      {
        *Order: PAGE_SETUP.16
        *Cmd: "<1B>*v1N<1B>*v1O<1B>*l184O<1B>*v6W<000308080808>
+              <1B>*v0a0b0c7i255a255b255c"
      }
   }
}