保護された印刷のドライバー サポート
重要
Windows でプリンターとの通信手段として推奨されるのは、最新の印刷プラットフォームです。 プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。
詳細については、最新の印刷プラットフォームに関する記事および「印刷サポート アプリの設計ガイド」を参照してください 。
Windows 8.1 には、保護された印刷のサポートが含まれています。これにより、ユーザーは印刷前にプリンターで使用される個人識別番号 (PIN) を指定できます。
また、Windows 8.1 では、管理者は既定の PIN を指定して、ユーザーが印刷しないコンテンツに関連する無駄な用紙消費量を減らすことができます。 このトピックでは、保護された印刷のサポートを提供するために可能になった変更について説明します。また、v4 印刷ドライバーにこのサポートを追加するために必要な手順についても説明します。
スキーマの変更を印刷する
Windows 8.1 では、保護された印刷を指定するために PrintTicket ドキュメントと PrintCapabilities ドキュメントで使用できる新しい印刷スキーマ キーワード (keyword)が導入されました。 これらのキーワードは、新しい printschemakeywordsv11 名前空間で定義されています。 この名前空間の URI を次に示します:
https://schemas.microsoft.com/windows/2013/05/printing/printschemakeywordsv11
PrintTicket ファイルで保護された印刷を指定する方法については、「PIN 印刷用の PrintTicket ファイルのサンプル」 を参照してください。 PrintCapabilities ファイルで保護された印刷を指定する方法については、「PIN 印刷用の PrintCapabilities ファイルのサンプル」を参照してください。
仕様はこちらからダウンロードできます:
ドライバーの変更
v4 ドライバーを使用している場合は、汎用プリンター記述 (GPD) または PostScript プリンター記述 (PPD) ファイル、およびその他のドライバー関連のコード ファイルを変更する必要があります。 変更の影響を受けるドライバー関連のコード ファイルは、次のように分類できます。
- ドライバー構成ファイル (GPD または PPD)
- XPS レンダリング フィルター
- プリンター拡張機能
- UWP デバイス アプリ
PTProvider コードで必要な変更を行う限り、v3 ドライバーを印刷スキーマ キーワードで保護された印刷に使用できます。 ただし、これらの変更を行う手順は、このトピックの範囲外です。
次のセクションでは、v4 ドライバーが保護された印刷をサポートできるようにする変更を実装する方法について詳しく説明します。
ドライバー構成ファイル。
v4 印刷ドライバーの DataFile で保護された印刷のサポートを指定します。 DataFile は、GPD または PPD ファイルのいずれかです。ドライバーが使用するファイルです。 保護された印刷を有効にするには、MinLength ディレクティブと MaxLength ディレクティブの両方を指定する必要があります。 次の表では、ドライバーの GPD または PPD ファイルに追加する必要がある関連するキーワードについて説明します。
GPD ファイルに追加する内容
ドライバーで GPD ファイルを使用する場合は、この構文を使用して次の新しいキーワードを追加します。
キーワード | 説明 | Level | 許可されている値 | 例 |
---|---|---|---|---|
*JobPasscodeMinLength | サポートされている PIN 数値文字列の最小長。 この値は4以上15以下でなければなりません。 |
ルート | 任意の GPD 数値 | *JobPasscodeMinLength: 4 |
*JobPasscodeMaxLength | サポートされている PIN 数値文字列の最大長。 この値は4以上15以下でなければなりません。 これは、 *JobPasscodeMinLength 値以上でなければなりません。 |
ルート | 任意の GPD 数値 | *JobPasscodeMaxLength: 9 |
PPD ファイルに追加する内容
ドライバーで PPD ファイルを使用する場合は、この構文を使用して次の新しいキーワードを追加します。
キーワード | 説明 | Level | 許可されている値 | 例 |
---|---|---|---|---|
MSJobPasscodeMinLength | サポートされている PIN 数値文字列の最小長。 この値は4以上15以下でなければなりません。 |
ルート | "int" (QuotedValue) つまり、整数値は引用符で表す必要があります。 |
*MSJobPasscodeMinLength: "4" |
MSJobPasscodeMaxLength | サポートされている PIN 数値文字列の最大長。 この値は4以上15以下でなければなりません。 これは、 *MSJobPasscodeMinLength 値以上でなければなりません。 |
ルート | "int" (QuotedValue) つまり、整数値は引用符で表す必要があります。 |
*MSJobPasscodeMaxLength: "9" |
ハードウェア制約の指定
ハード ドライブなどのインストール可能なハードウェアなしで PIN 印刷をサポートしていないデバイスがある場合は、GPD または PPD ファイルを使用してこれらの制約を指定します。 これを行うには、GPD または PPD ファイルを編集して JobPasscode 機能と JobPasscode オプション (オンとオフ) の両方を表示する必要があります。 ON/OFF オプションは、PrintSchemaKeywordMap または MSPrintSchemaKeywordMap を適切な値に設定する必要があります。
ソフトウェア制約
これらはサポートされていません。
ハードウェア制約
次の表は、保護された印刷とハードウェアの制約のサポートを指定する場合に使用する必要があるキーワードの有効な値を示しています。
ファイルの種類 キーワード 有効な値 GPD *Feature JobPasscode *Option
- OFF
- ON
*PrintSchemaKeywordMap
- "Off"
- "On"
- "JobPasscode"
PPD *Feature JobPasscode *Option
- OFF
- ON
*MSPrintSchemaKeywordMap
- "Off"
- "On"
- "JobPasscode"
GPD ファイルと PPD ファイルの例
インストール可能なハードウェア制約を持つ JobPasscode を指定する GPD ファイルの例を次に示します。
*%
*GPDSpecVersion: "1.0"
*GPDFileVersion: "1.0"
*Include: "StdNames.gpd"
*Include: "MSxpsinc.gpd"
*ResourceDLL: "unires.dll"
*GPDFileName: "FAsmpl.gpd"
*ModelName: "Fabrikam JobPasscode Sample"
*MasterUnits: PAIR(1200, 1200)
*PrinterType: PAGE
*MaxCopies: 999
*JobPasscodeMinLength: 4
*JobPasscodeMaxLength: 15
*%******************************************************************************
*% JobPasscode
*%******************************************************************************
*Feature: JobPasscode
{
*Name: "Job Passcode"
*DefaultOption: OFF
*ConcealFromUI: TRUE
*PrintSchemaKeywordMap: "JobPasscode"
*Option: OFF
{
*PrintSchemaKeywordMap: "Off"
*Name: "Off"
}
*Option: ON
{
*PrintSchemaKeywordMap: "On"
*Name: "On"
}
}
*Feature:PrinterHardDisk
{
*rcNameID: RESDLL.PCL5ERES.430
*FeatureType: PRINTER_PROPERTY
*DefaultOption: FALSE
*Option: FALSE
{
*DisabledFeatures: LIST(JobPasscode)
*rcNameID: RESDLL.PCL5ERES.444
}
*Option: TRUE
{
*rcNameID: RESDLL.PCL5ERES.443
}
}
保護された印刷オプションが意図せず表示されないようにするには、*ConcealFromUI キーワード (keyword)を使用して TRUE に設定する必要があります。 前のGPDファイル例を参照してください。
インストール可能なハードウェア制約を持つ JobPasscode を指定する PPD ファイル例を次に示します。
*MSJobPasscodeMinLength: "4"
*MSJobPasscodeMaxLength: "15"
*OpenGroup: InstallableOptions/Installable Options
*% ===== Optional Hard Disk =====
*OpenUI *HardDisk/Printer Hard Disk: Boolean
*DefaultHardDisk: False
*HardDisk False/Not Installed: ""
*HardDisk True/Installed: ""
*CloseUI: *HardDisk
*CloseGroup: InstallableOptions
*% ===== JobPasscode Feature =====
*OpenUI *JobPasscode: PickOne
*DefaultJobPasscode: On
*JobPasscode On: ""
*CloseUI: *JobPasscode
*MSPrintSchemaKeywordMap: JobPasscode *JobPasscode
*MSPrintSchemaKeywordMap: JobPasscode On *JobPasscode On
*UIConstraints: *HardDisk False *JobPasscode
前述の PPD ファイルの例でわかるように、*UIConstraints キーワード はハードウェア制約を示します。
Windows オペレーティング システムは、保護された印刷機能とそれに関連付けられているオプションのロケール固有の文字列を自動的に表示します。 この機能またはそのオプションに新しいローカライズされた名前を指定することはできません。
XPS レンダリング フィルター
既存のデバイスのドライバーは、これらのドライバーが PIN 値の PrintTicket 表現をデバイスが認識する値に変換できるように、レンダリング コードを変更する必要があります。 一般に、既存の XPS レンダリング フィルターにコードを追加するか、保護された印刷をサポートするために新しい XPS レンダリング フィルターを追加する必要があります。 PCL6 と PostScript の標準的な XPS レンダリング フィルターを使用するドライバーは、フィルター パイプライン用の新しいストリーム フィルターを開発する必要があります。 この新しいストリーム フィルターは、ストリームが標準フィルターを通過した後、フィルター パイプラインで事前にレンダリングされた PDL ストリームに適切なコマンドを挿入します。
クライアントまたはサーバー PC でのレンダリング要件を最小限に抑えるために、XPS または OpenXPS をサポートする新しいデバイスでは、追加の変換を使用せずに新しいキーワード (keyword)をサポートすることをお勧めします。
プリンター拡張機能
プリンター拡張機能は、印刷設定 UI で保護された印刷用のコントロールを表示できる必要があります。 これにより、デスクトップ アプリのユーザーは、プリンター拡張機能を使用するときに保護された印刷機能を構成できます。 Microsoft では、IPrintSchemaTicket ファミリの API がプリンター拡張機能から保護された印刷をサポートできるようにする変更を行っています。
UWP デバイス アプリ
また、Microsoft では、IPrintSchemaTicket ファミリの API が UWP デバイス アプリと連携して、保護された印刷用のコントロールを印刷設定 UI に表示できるように変更を加えています。