Поделиться через


Включение поддержки векторной графики HP-GL/2 (PCL-5e) в GPD

Внимание

Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.

Дополнительные сведения см. в руководстве по проектированию приложений поддержки печати.

Чтобы включить поддержку вектора HP-GL/2 в Windows XP, необходимо выполнить две действия.

  1. Задайте для атрибута *Personality значение PERSONALITY_HPGL2.

  2. Определите настраиваемую функцию GraphicsMode с параметром HPGL2MODE. Чтобы обеспечить поддержку растровой графики, включите параметр 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 XP Unidrv, работающего в Windows 2000, определяется параметр 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"
      }
   }
}