共用方式為


在 GPD 中啟用 HP-GL/2 向量圖形支援 (PCL-5e)

重要

新式列印平臺是 Windows 與印表機通訊的慣用方法。 我們建議您使用Microsoft的 IPP 收件匣類別驅動程式,以及列印支援應用程式 (PSA),自定義 Windows 10 和 11 中的列印體驗,以進行印表機裝置開發。

如需詳細資訊,請參閱 新式列印平臺列印支援應用程式設計指南

若要在 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"
      }
   }
}