共用方式為


驅動程式功能

重要

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

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

驅動程式功能是驅動程式合成的非PPD功能(例如 %OutputFormat 功能)。 為了避免名稱與PPD功能關鍵詞發生衝突,所有驅動程式功能關鍵詞名稱前面都會加上 「%」 字元。 驅動程式功能/選項關鍵詞也會區分大小寫。

若要取得驅動程式支援的所有驅動程式功能關鍵詞清單,外掛程式可以呼叫 EnumFeatures,這會傳回包含驅動程式功能和 PPD 功能的功能關鍵詞清單。 外掛程式接著可以搜尋開頭為 「%」 前置詞的功能關鍵詞名稱,以取得驅動程式功能清單。

下表列出目前支援的驅動程式功能。 數據表中的每個數據列都會列出驅動程式功能關鍵詞、顯示支援的選項、指出功能的選項是否可以在對 EnumOptions 的呼叫中列舉,並提供簡短的描述。

驅動程式功能 支援的選項 列舉選項 描述和批注
%AddEuro "True"

“False”
Yes 將歐元符號新增至裝置字型。

此功能僅支援層級 2+ 印表機。 對於層級 1 印表機, SetOptions 會忽略此功能,而 GetOptions 一律會傳回 “False”。
%CtrlDAfter "True"

“False”
Yes 在每個作業之後傳送 Ctrl-D。

印表機黏性
%CtrlDBefore "True"

“False”
Yes 在每個作業之前傳送 Ctrl-D。

印表機黏性
%CustomPageSize 如需詳細資訊,請參閱下面的附註 1。 No 指定 PostScript 自訂頁面大小參數。

檔黏性
%GraphicsTrueGray "True"

“False”
Yes 將灰色圖形轉換為 PostScript 灰色。

印表機黏性
%JobTimeout NULL 終止的 ANSI 字串,其中包含十進位數位元,代表逾時範圍 0 到 2,147,483,647 的無符號整數秒數。

針對 SetOptions,允許小數字數前後的額外索引標籤或空格字元,但不允許符號符號。
No 指定作業逾時值。

印表機黏性
%MaxFontSizeAsBitmap NULL 終止的 ANSI 字串,包含代表不帶正負號整數圖元的十進位字元,範圍介於 0 到 32,767 之間。

針對 SetOptions,允許小數字數前後的額外索引標籤或空格字元,但不允許符號符號。
No 指定要下載為點陣陣圖的最大字型大小。

印表機黏性
%MetafileSpooling "True"

“False”
Yes 啟用/停用進階列印功能。

檔黏性

如需詳細資訊,請參閱下面的附註 2。
%MinFontSizeAsOutline NULL 終止的 ANSI 字串,包含代表不帶正負號整數圖元的十進位字元,範圍介於 0 到 32,767 之間。

針對 SetOptions,允許小數字數前後的額外索引標籤或空格字元,但不允許符號符號。
No 指定要下載為大綱的最小字型大小。

印表機黏性
%Mirroring "True"

“False”
Yes 藉由反轉水準座標來鏡像輸出。

檔黏性
%Negative "True"

“False”
Yes 藉由反轉黑白值來產生負輸出。 此功能僅支援黑白印表機。 針對彩色印表機, SetOptions 會忽略此功能,而 GetOptions 一律會傳回 “False”。

檔黏性
%Orientation “Portrait”、“Landscape”、“RotatedLandscape” Yes 指定輸出方向。

檔黏性
%OutputFormat “Speed”、“Portability”、“EPS”、“Archive” Yes 指定 PostScript 輸出格式。

檔黏性

如需詳細資訊,請參閱下面的附註 5。
%OutputProtocol “ASCII”、“BCP”、“TBCP”、“Binary” Yes 指定印表機將用於列印作業的通訊協定。 PostScript 印表機假設支援 “ASCII” 和 “Binary”,因此這些選項一律可供使用。 只有在支援 「BCP」 和 「TBCP」 選項時,才能使用。 若要判斷這一點,請檢查全域屬性「通訊協定」。

印表機黏性
%OutputPSLevel "1", "2", "3" No 指定要用於列印作業的 PostScript 語言層級。 設定永遠不會大於 「LanguageLevel」 全域屬性中指定的值。

檔黏性
%PageOrder “FrontToBack”

“BackToFront”
Yes 指定列印頁面的順序。

檔黏性

如需詳細資訊,請參閱下面的附註 3。
%PagePerSheet "1", "2", "4", "6",

“9”、“16”、“Booklet”
Yes 指定每個實體工作表的邏輯頁數。 這項功能也稱為「N-up」列印。

檔黏性

如需詳細資訊,請參閱下面的附註 4。
%PSErrorHandler "True"

“False”
Yes 傳送 PostScript 錯誤處理程式。

檔黏性
%PSMemory NULL 終止的 ANSI 字串,包含十進位數位符,代表 PostScript 記憶體的無符號整數數目,範圍介於 0 到 2,147,483,647 之間。

針對 SetOptions,允許小數字數前後的額外索引標籤或空格字元,但不允許符號符號。
No 指定可用的 PostScript 虛擬記憶體數量。

核心驅動程式需要一定數量的可用 PostScript 虛擬記憶體進行處理。 如果 %PSMemory 設為低於此最小值,則會使用最小值作為新值。 目前層級 1 印表機的最小值為 172 KB,層級 2+ 印表機的最小值為 249 KB。

印表機黏性
%TextTrueGray "True"

“False”
Yes 將灰色文字轉換為 PostScript 灰色。

印表機黏性
%TTDownloadFormat “Automatic”、“Outline”、“Bitmap”、“NativeTrueType” Yes 指定 TrueType 字型下載格式。 只有當 「TTRasterizer」 全域屬性表示支援 「Type42」 時,才支援 「NativeTrueType」。。

檔黏性
%WaitTimeout NULL 終止的 ANSI 字串,其中包含十進位數位元,代表逾時範圍 0 到 2,147,483,647 的無符號整數秒數。

針對 SetOptions,允許小數字數前後的額外索引標籤或空格字元,但不允許符號符號。
No 指定等候逾時值。

印表機黏性

驅動程式功能關鍵詞的相關注意事項

  1. %CustomPageSize 驅動程式功能有五個選項值:x、y、WidthOffset、HeightOffset 和 FeedDirection。 如需這些參數的詳細說明,請參閱 PostScript 印表機描述檔格式規格 4.3 第 5.16 節。

    %CustomPageSize 專案包含 %CustomPageSize 關鍵詞,以及 x、y、WidthOffset、HeightOffset 和 FeedDirection 選項的值。 第一個專案是 %CustomPageSize 關鍵詞,後面接著 NULL 字元。 x、y、WidthOffset 和 HeightOffset 的值會遵循這個關鍵詞,並顯示為不帶正負號小數位的子字串,每個都代表對應選項值的 PostScript 點數。 每個數值後面都會接著一或多個空格或製表符。 字串中的最後一個專案是FeedDirection的值,以NULL字元結尾。 FeedDirection 的選項包括 “LongEdge”、“ShortEdge” (對應至方向 0 和 1),以及 “LongEdgeFlip”、“ShortEdgeFlip” (對應至方向 2 和 3)。 請檢查 *LeadingEdge PPD 功能關鍵詞,以取得支援的摘要指示。

    針對 GetOptions,pmszFeatureOptionBuf指向的輸出緩衝區如上一段所述。 在下列範例中,x 的值是 612、y 的值是 792、WidthOffset 和 HeightOffset 的值都是 0,而 FeedDirection 的值是 “ShortEdge”。

    "%CustomPageSize\0612 792 0 0 ShortEdge\0"
    

    針對 SetOptions,允許小數字數前後的額外索引標籤或空格字元,但不允許符號符號。 否則,pmszFeatureOptionBuf指向的輸入緩衝區應該如上述所述建構。

  2. 只有在符合下列三個條件時,才支援 %CustomPageSize 驅動程式功能:

    1. PPD 檔案包含 *CustomPageSize 功能。

    2. *PPD-Adobe 關鍵詞的值大於或等於 4.3,或指定 *UseHWMarginFalse 來指出滾動裝置。

    3. *PageSize PPD 功能目前選取的選項是 CustomPageSize。

  3. 只有在啟用多任務緩衝處理程式EMF多任務緩衝處理時,才支援此功能。

    支援時,將此功能的選項設定為 「False」 會導致下列 EMF 相關功能變更:

    1. 如果 %PagePerSheet 是 “Booklet”,則會變更為 “1”。

    2. 如果 Collate 設定為 “True”(可以直接在 DEVMODEW 結構的公用部分設定,或藉由在 *Collate PPD 功能上呼叫 SetOptions),但目前無法使用 Collate 功能,Collate 將會設定為 “False”。

    3. 如果 %PageOrder 與印表機目前的輸出順序設定相反, %PageOrder 會反轉為印表機的值。

  4. 只有在啟用多任務緩衝處理程式EMF多任務緩衝處理時,才支援此功能。

    支援此功能時,設定此功能可能會導致發生下列情況:

    1. 如果印表機的PPD檔案包含 *OutputOrder 功能關鍵詞,則會將其選項選取範圍變更為符合 %PageOrder 功能之新設定的輸出順序。 這樣做是為了防止多任務緩衝處理程序執行不必要的頁面順序模擬。

    2. 如果印表機的 PPD 檔案不包含 *OutputOrder 功能,且 %PageOrder 驅動程式功能的新設定與印表機目前的輸出順序設定相反,且 %MetafileSpooling 驅動程式功能為 “False”,則 %MetafileSpooling 會重設為 “True”。

  5. 只有在啟用多任務緩衝處理EMF多任務緩衝處理且雙工功能可供使用時,才支援 「Booklet」 選項。

    支援 「Booklet」 選項時,將 %PagePerSheet 驅動程式功能設定為 「Booklet」 可能會導致下列變更:

    1. 如果 %MetafileSpooling 驅動程式功能為 “False”,則會重設為 “True”。

    2. 如果 *雙工 PPD 功能設定為 [無],則 *雙工功能會重設為PPD 檔案中定義的第一個非Simplex 選項。

  6. 除了 “EPS” (封裝 PostScript),%OutputFormat 驅動程式功能中指定的格式會根據下列兩個特性分類:

    1. 輸出 PostScript 程式代碼與頁面順序無關嗎?

    2. 輸出 PostScript 程式代碼是否包含裝置控制命令(通常使用 setpagedevice 運算符)?

      類別 頁面順序獨立 setpagedevice
      封存 No
      可攜性 Yes Yes
      速度 No Yes

在驅動程式功能關鍵詞上呼叫 GetOptions 時,如果無法辨識所要求的功能關鍵詞,或辨識功能關鍵詞,但在目前的檔黏性列印機黏性模式中不受支援(請參閱取代驅動程式提供的屬性表頁面),則只會忽略此功能,而且輸出緩衝區不會包含其功能/選項關鍵詞組。

例如,假設 呼叫 GetOptions 方法,而且 pmszFeaturesRequested 輸入緩衝區包含下列字串(MULTI_SZ格式):

"Resolution\0%CustomPageSize\0Unknown_Name\0%Orientation\0\0"

GetOption 傳回之後pmszFeatureOptionBuf 輸出緩衝區可以包含此字串(也以MULTI_SZ格式):

"Resolution\0300dpi\0%CustomPageSize\0612 792 0 0 ShortEdge\0%Orientation\0RotatedLandscape\0\0"

請注意,第一個字串中列出的Unknown_Name功能不會出現在第二個字元串中,因為它無法由 Pscript 驅動程式辨識。 其他功能、Resolution、 %CustomPageSize%Orientation 都會出現在輸出字串中,以及其目前的選項,分別是 “300dpi”、“612 792 0 0 ShortEdge”和 “RotatedLandscape”。 如需 %CustomPageSize 選項的說明,請參閱驅動程式功能。

當在驅動程式功能關鍵詞上呼叫 SetOptions,如果在 pmszFeatureOptionBuf 所指向的輸入緩衝區中呼叫要求的 feature 關鍵詞或其 option 關鍵詞,或辨識該功能,但在目前的檔黏性或列印機黏模式中不支援此功能(請參閱取代驅動程式提供的屬性表頁面或可辨識 feature 關鍵詞及其 option 關鍵詞,但該功能的選項關鍵詞無效(例如,嘗試在不支援 Type42 TTRasterizer 的印表機上嘗試將 %TTDownloadFormat 設定為 “NativeTrueType”),則會忽略該功能/選項組,且該功能的目前選項將繼續生效。

pmszFeatureOptionBuf 所指向之緩衝區中的功能/選項關鍵片語順序可能會影響 SetOptions 呼叫的結果 例如,下列兩個不同的訂單有不同的結果。

pmszFeatureOptionBuf %PagePerSheet %MetafileSpooling
“%MetafileSpooling\0False\0%PagePerSheet\0Booklet\0\0” “摺頁冊” "True"
“%PagePerSheet\0Booklet\0%MetafileSpooling\0False\0\0” 「1」 “False”

如需這些結果發生原因的說明,請參閱上述 %MetafileSpooling 上的附註 3。