重要
新式列印平臺是 Windows 與印表機通訊的慣用方法。 我們建議您使用Microsoft的 IPP 收件匣類別驅動程式,以及列印支援應用程式 (PSA),自定義 Windows 10 和 11 中的列印體驗,以進行印表機裝置開發。
如需詳細資訊,請參閱 列印支援應用程式設計指南。
某些印表機的功能或選項可能可安裝。 例如,印表機可以使用選配的信封送紙器,而該送紙器可能目前已經或尚未安裝。 此信封送紙器必須在 GPD 檔案中以兩種方式描述:
作為 InputBin 功能的選項。
作為可安裝的「功能」(即使它確實是一個選項),這可讓使用者指出它是否實際安裝。
首先,若要指定信封送紙器以及自動送紙器作為 InputBin 功能的選項,可以使用下列 GPD 專案。
*Feature: InputBin
{
*Name: "Input Bin"
*Option: AUTO
{
*Name: "Automatic Feeder"
*Command: CmdSelect {Command Attributes}
}
*Option: ENVFEED
{
*Name: "Envelope Feeder"
*Command: CmdSelect {Command Attributes}
}
}
若要讓信封送紙器可安裝,則需要額外的 GPD 專案,如下所示:
*InstalledOptionName: "Installed"
*NotInstalledOptionName: "Not installed"
*Feature: InputBin
{
*Name: "Input Bin"
*Option: AUTO
{
*Name: "Automatic Feeder"
*Command: CmdSelect {Command Attributes}
}
*Option: ENVFEED
{
*Name: "Envelope Feeder"
*Command: CmdSelect {Command Attributes}
*Installable?: TRUE
*InstallableFeatureName: "Optional Envelope Feeder"
}
}
在信封送紙器的選項條目中,已新增兩個屬性:
*Installable?屬性表示選項是可安裝的。
*InstallableFeatureName 屬性會指定 Unidrv 顯示的文字字串,讓使用者可以指出是否真的安裝選項。
每當 *Installable? 針對功能或選項設定為 TRUE 時,Unidrv 就會為屬性表顯示建立其他功能。 (請注意,即使可安裝的項目是選項,Unidrv 也會在屬性表中為其建立功能表示法。這個 Unidrv 合成功能是由 *InstallableFeatureName 提供的字串所識別。 此功能提供兩個選項「已安裝」和「未安裝」,並可讓用戶選取其中一個選項。 字串 'Installed' 和 'Not installed' 是透過屬性 *InstalledOptionName 和 *NotInstalledOptionName 指定的,以便在其他文字更適合時進行修改。
因此,在我們的範例中,屬性表會包含 InputBin 功能、加上標籤的 Input Bin,其中包含兩個選項、標示為自動送紙器和信封摘要器。 屬性表還包括一個標示為“選配信封進紙器”的額外功能,並附有兩個選項:“已安裝”和“未安裝”。 如果使用者第一次選取 [選用信封摘要器] 底下的 [已安裝],則只能選取 [輸入站] 底下的 [信封摘要器]。
有時候,必須指出某些可安裝的選項無法同時安裝,或者如果安裝某些其他可安裝選項,就無法選取特定不可安裝的選項。 若要處理這些情況,請使用包含 選項條件約束 的 GPD 項目。
您無法在需要 *DisabledFeatures 項目的選用功能中使用 *Installable? 屬性。 針對這些功能,您必須使用 [已安裝] 和 [未安裝] 選項明確指定選擇性功能。 例如,假設印表機具有選配的雙面列印單元。 如果未安裝雙面列印單元,則必須停用雙面列印功能(請參閱 標準功能)。 您必須定義「選擇性雙面列印單元」功能,並設有 [已安裝] 和 [未安裝] 選項。 在「未安裝」的 *選項項目中,您應包含雙面列印功能的 *DisabledFeatures 項目。 您可以使用下列 GPD 條目:
*Feature: DuplexUnit
{
*ConflictPriority: 3 *% Make priority higher than Duplex feature
*Name: "Optional Duplexing Unit"
*Option: Installed
{
*Name: "Installed"
}
*Option: NotInstalled
{
*Name: "Not Installed"
*DisabledFeatures: LIST(Duplex)
*Constraints: LIST (Duplex.LongEdge, Duplex.ShortEdge)
}
}
請務必同時指定任何相關的選項條件約束,如所示。