共用方式為


處理色彩格式

重要

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

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

印表機支援的每個色彩格式都會指定為 ColorMode 功能的選項。 藉由使用 ColorMode 功能的選項屬性,您可以描述印表機接受的每個色彩格式。 下表說明 Unidrv 可以處理的色彩數據格式。

色彩平面數目 每個像素的位數
在裝置中 (*DevNumOfPlanes) 在裝置中 (*DevBPP)
1 1 (黑白)
1 8
1 24
3 1 (CMY 和 RGB)
4 1 (CMYK)

針對這些格式,Unidrv 可以將裝置獨立點陣圖 (DIB) 數據轉換成適當的格式,並將其傳送至印表機。 (可以在此數據上執行的半頓作業會說明 與 Unidrv 進行半頓。

如果您的印表機支援上表未列出的色彩格式,您必須執行下列動作:

IPrintOemUni ImageProcessing 方法必須執行下列作業:

  • 將 DIB 資料轉換成印表機的色彩格式。

  • 對數據執行半場運算。

  • 將數據傳送至列印多任務緩衝處理器。

如需提供 IPrintOemUni ImageProcessing 函式的詳細資訊,請參閱自定義色彩格式

轉譯高品質影像

針對每個色彩格式,您可以指定印表機硬體所接受的每圖元位,以及建立 DIB 時,Unidrv 要使用的每圖元位。 這些值分別以 *DevBPP 和 *DrvBPP 屬性指定。 有時候,影像轉譯為每圖元的位數比印表機可以處理的位數要高(例如,嘗試重現高品質的相片)是可取的。 因此,允許指定大於 *DevBPP 值乘以 *DevNumOfPlanes 值的結果的 *DrvBPP 值。

例如,假設您想要定義 ColorMode 選項,讓影像轉譯為 24 位/圖元陣陣圖,但之後您想要將點陣圖以 CMYK 數據的形式傳送至列印機。 您可以定義此模式,如下所示:

*Feature: ColorMode
{
    *Option: 24toCMYK
    {
        *Name: "Photographic Quality"
        *DrvBPP: 24
        *DevNumOfPlanes: 4
        *DevBPP: 1
        *ColorPlaneOrder: LIST(CYAN, MAGENTA, YELLOW, BLACK)
        *IPCallbackID: 1
    }
 other options
}

在此範例中,*DevBPP 和 *DevNumOfPlanes 屬性代表 Unidrv 可以轉譯的四平面、每平面一位 CMYK 格式,然後傳送至印表機。 不過,在此情況下,在列印轉譯影像之前,必須在轉譯的影像上執行半場作業。 必須使用 Minidriver 提供的半頓