Включение поддержки векторной графики HP-GL/2 (PCL-5e) в GPD
Внимание
Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.
Дополнительные сведения см. в руководстве по проектированию приложений поддержки печати.
Чтобы включить поддержку вектора HP-GL/2 в Windows XP, необходимо выполнить две действия.
Задайте для атрибута *Personality значение PERSONALITY_HPGL2.
Определите настраиваемую функцию 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"
}
}
}