Windows Vista の新しいルート レベル専用 PPD 属性
重要
最新の印刷プラットフォームは、Windows がプリンターと通信するための推奨手段です。 プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。
詳細については、 最新の印刷プラットフォーム および 印刷サポート アプリ設計ガイドを参照してください。
次の一覧では、Windows Vista 以降の新しい PPD 属性について説明します。 Windows Vista より前のバージョンの Windows との下位互換性メイン維持するには、これらの属性を次のコードで囲む必要があります。
*Ifdef: WINNT_60 ... *Endif: WINNT_60 blocks
MSPrintSchemaKeywordMap
MSPrintSchemaKeywordMap 属性は、PPD 機能キーワードからパブリック印刷スキーマ機能キーワードへのマッピング、または PPD 機能の PPD オプション キーワードから印刷スキーマ機能のキーワード パブリック印刷スキーマ オプションへのマッピングを定義します。
MSPrintSchemaKeywordMap には、次の 2 つの使用可能な形式があります。
*MSPrintSchemaKeywordMap: PrintSchema_feature_keyword *<PPD_feature_keyword>
*MSPrintSchemaKeywordMap: PrintSchema_feature_keyword PrintSchema_option_keyword *<PPD_feature_keyword> <PPD_option_keyword>
両方の形式の PPD 機能キーワード プレフィックス (アスタリスク [*]) が必要です。
形式 1 の場合:
PPD 機能キーワードは、以前の PPD ファイル コンテンツで既に定義されている PPD 機能を参照する必要があります。
同じ PPD 機能に対する *MSPrintSchemaKeywordMap の複数の定義は許可されません。 複数の定義が見つかった場合、最初の定義のみが受け入れられ、他の定義は無視されます。
形式 2 の場合:
PPD 機能の *MSPrintSchemaKeywordMap 定義 (形式 1 を使用) は、PPD 機能のオプションの *MSPrintSchemaKeywordMap 定義を表示する前に存在する必要があります。
PPD オプションの *MSPrintSchemaKeywordMap 定義では、PPD 機能キーワードと印刷スキーマ機能キーワードのマッピングは、PPD 機能の前の *MSPrintSchemaKeywordMap 定義で定義されているものと同じである必要があります (形式 1 を使用)。
PPD オプション キーワードは、以前の PPD ファイル コンテンツで既に定義されている PPD 機能のオプションを参照する必要があります。
PPD 機能の同じ PPD オプションに対する *MSPrintSchemaKeywordMap の複数の定義は許可されません。 複数の定義が見つかった場合、最初の定義のみが受け入れられ、他の定義は無視されます。
*MSPrintSchemaKeywordMap エントリが上記のいずれかの形式規則に違反している場合、そのエントリは無視され、詳細情報を含む ppdchecker 警告が表示されます。
*MSPrintSchemaKeywordMap は、次の標準 PPD 機能での使用はサポートされていません。
*Collate *Duplex *InputSlot *OutputBin *PageSize *Resolution *MediaType PPD ファイルで既に使用されている印刷スキーマ キーワードに機能をマップする場合、対応する PrintCapabilities ドキュメントにその機能が複数回表示される可能性があることにも注意してください。 複数回発生すると混乱が発生する可能性があるため、PPD ファイルで使用される印刷スキーマ キーワードに機能をマップしないでください。
PPD パーサーは、InputBin 機能の FORMSOURCE オプションを自動的に生成し、印刷スキーマの AutoSelect キーワードにマップします。 PPD ファイルに、MSPrintSchemaKeywordMap 属性を使用してオプションを印刷スキーマ キーワードにマップする InputBin オプションが含まれている場合、印刷スキーマの機能には、デバイス名前空間に FORMSOURCE オプションが含まれます。 AutoSelect は PrintCapabilities ドキュメントに表示され、PPD ファイルの MSPrintSchemaKeywordMap 属性で指定されているオプションを参照します。
次のコード例は、部分的な PPD ファイルの MSPrintSchemaKeywordMap 属性の例を示しています。
*OpenUI *IHVStapling:PickOne
*DefaultIHVStapling:Disabled
*IHVStapling Enabled:"..."
*IHVStapling Disabled:"..."
*CloseUI: *IHVStapling
*MSPrintSchemaKeywordMap: Staple*IHVStapling
*MSPrintSchemaKeywordMap: StapleOn*IHVStaplingEnabled
*MSPrintSchemaKeywordMap: StapleOff*IHVStaplingDisabled
MSPrintSchemaPrivateNamespaceURI
MsPrintSchemaPrivateNamespaceURI 属性は、PrintTicket または PrintCapabilities のプライベート PPD 機能またはオプションを公開するためにコア ドライバーが使用するプライベート名前空間 URI を定義します。 この URI は、(*MSPrintSchemaKeywordMap 定義を使用して) パブリック印刷スキーマに明示的にマッピングされていない機能またはオプションに適用されます。
MSPrintSchemaPrivateNamespaceURI は次の形式を使用します。
*MSPPrintSchemaPrivateNamespaceURI: "<URI>"
<URI> は PPD QuotedValue を表します。 PPD 仕様で定義されているように、QuotedValue ではリテラル ASCII 部分文字列と 16 進部分文字列の両方を使用できます。
1 つのプリンター モデルの PPD ファイル (またはファイル) には、*MSPrintSchemaPrivateNamespaceURI の定義が 1 つだけ必要です。 複数の定義が見つかった場合、最初の定義のみが受け入れられ、他の定義は無視されます。
次のコード例は、部分的な PPD ファイルの MsPrintSchemaPrivateNamespaceURI 属性の例を示しています。
*MSPrivateNamespaceURI: "https://www.ihv.com/schema/2004"
MSIsXPSDriver
MSIsXPSDriver 属性は、次の形式を使用します。
*MSIsXPSDriver: True | False
Windows Vista PScript5 ドライバー構成モジュール (Ps5ui.dll) は、Microsoft Win32 GDI ドライバーと新しい XPSDrv ドライバーの両方に使用できます。 XPSDrv ドライバーに PScript5 ドライバー構成モジュールを使用するには、XPSDrv ドライバーの PPD データ ファイルで MSIsXPSDriver を指定し、その値を True に設定する必要があります。
次のコード例は、部分的な PPD ファイル内のこの属性の例を示しています。
*MSIsXPSDriver: True
Win32 GDI ドライバーの PScript5 ドライバー構成モジュールを使用するには、この PPD 属性を指定する必要はありません。
MSPrintProcDuplexOptions
MSPrintProcDuplexOptions 属性は、次の形式を使用します。
*MSPrintProcDuplexOptions: "int"
この属性は、次のいずれかの値をとることができます。
1:両面印刷でページを反転させる
2:可能であれば余分な空白ページの生成を抑制する
3:上記の両方。
0:上記のどれでもない
次のコード例は、部分的な PPD ファイル内の MSPrintProcDuplexOptions の例を示しています。
*MSPrintProcDuplexOptions: "2"
この属性は、印刷プロセッサのさまざまな両面印刷オプションを制御します。
MSPrintProcDuplexOptions が 1 の場合、印刷プロセッサが両面印刷でページを反転させるかどうかを制御します。
n-up = 1 の 4 ページの文書を印刷する必要があり、反転印刷と両面印刷を使用するとします。 反転印刷を行う場合は、最初のページの前に最後のページを印刷します。 両面印刷が必要なので、1 枚の用紙に 2 ページ印刷します。 印刷プロセッサは、次の 2 つの形式のいずれかでページを再生できます (各数値のペアは、1 枚の用紙の両側に印刷される 2 つのページを示します)。
形式 1: (4,3),(2,1)
形式 2: (3,4),(1,2)
Windows Vista より前の印刷プロセッサでは、ページが 2 [(3,4),(1,2)] の形式で印刷されます。 ただし、Windows Vista 以降では、既定の形式は 1 [(4,3),(2,1)] です。 この変更は、多くのプリンターが形式 2 で正しくない出力を持っているために発生しました。つまり、印刷されるページは適切な順序で順序付けされません。
プリンターが形式 1 で正しく動作する場合は、Windows Vista 以降で何も変更する必要はありません。 ただし、プリンターが形式 1 で正しく動作しない場合に、形式 2 に戻す場合は、値 1 の MSPrintProcDuplexOptions 属性を追加します。
*MSPrintProcDuplexOptions: "1"
Windows Vista PScript より前のドライバーの場合、Windows Vista より前の印刷プロセッサがある場合、形式 2 が既定であり、動作を変更することはできません。それ以外の場合は、Windows Vista 印刷プロセッサがある場合、形式 1 が既定であり、動作を変更することはできません。
Windows Vista PScript ドライバーの場合。 Windows Vista より前の印刷プロセッサがある場合、形式 2 が既定であり、PPD 属性は無視されます。それ以外の場合は、Windows Vista 印刷プロセッサがある場合、形式 1 が既定ですが、MSPrintProcDuplexOptions 属性を使用して形式を変更できます。
MSPrintProcDuplexOptions が 2 の場合、プロセッサは、特定の両面シナリオで空白ページの生成を抑制します。
たとえば、ジョブが 1 ページのジョブで、両面がオンの場合 (n-up = 1 を想定)、シートの片側のみを印刷する必要があります。 現在、プリンターは一方の面を印刷し、その後、裏面に空の空白ページを生成します。 (印刷ジョブは duplex=on で開始されたため、プリンターは用紙を取り出す前に 2 ページを予期します。2 ページ目が印刷されない場合は、一部のプリンターが待機し続けます)。現在のソリューションの欠点は次のとおりです。
生成されたページにより、アカウンティング ソフトウェアとプリンター内のページ カウンターのページ数が不正確になります。
ページがプリンターの途中で (一部の Hewlett Packard DeskJet スタイルのプリンターで) 取り出されると、プリンターが引き戻そうとしている間に、ユーザーがページを引き出そうとすることがあります。 この状況により、ハードウェアの問題が発生する可能性があります。
PPD ファイルで *MSPrintProcDuplexOptions: "2" を指定することで、上記の問題を回避できます。
この属性が設定されている場合でも、空白のページの最適化は次の限られたケースでのみ実行されることに注意してください。
反転印刷の場合、空白ページの最適化は、ジョブ全体が用紙の片面に収まる場合にのみ実行されます (たとえば、n-up=1 の 1 ページ ジョブや n-up =4 の 4 ページ ジョブ)。 ジョブに複数のシートが必要な場合、最適化は実行されません (プリンター ページが不正確な順序で印刷されるため)。 たとえば、3 ページのジョブの場合、ページは 4,3,2,<blank> ではなく 3,2,1,<blank> という順序で印刷される場合があります。
印刷プロセッサでコピーをシミュレートする必要がある場合、空白のページの最適化は実行されません。 必要な部数が印刷プロセッサーが作成できる部数を超える場合、印刷プロセッサーはコピーをシミュレートします。
次の状況は、シミュレーションが発生し、空白ページが生成される場合の例です (必要な場合)。
- コピーを作成できないプリンター用の 2 つのコピー
次の状況は、シミュレーションが発生せず、余分なページ生成を抑制できる場合の例です。
- コピーを作成できないプリンターの単一コピー ジョブ
- 複数のコピーを作成できるプリンターの 5 コピー ジョブ
Windows Vista PScript より前のドライバーの場合、Windows Vista より前の印刷プロセッサがある場合、プリンターは必要と判断された場合に余分な空白ページを印刷し、動作を変更することはできません。それ以外の場合、Windows Vista 印刷プロセッサを使用している場合、プリンターは必要と見なされた場合に余分な空白ページを印刷し、動作を変更することはできません。
Windows Vista PScript ドライバーの場合。 Windows Vista より前の印刷プロセッサがある場合、プリンターは必要と見なされた場合に余分な空白ページを印刷し、PPD 属性は無視されます。それ以外の場合、Windows Vista 印刷プロセッサがあり、適切な PPD 属性と適切な条件が存在する場合 (つまり、空のページ印刷を防止する前に説明した条件)、プリンターは空白ページを印刷しません。
MSBidiQueryFile
MSBiDiQueryFile 属性は、次の形式を使用します。
*MSBidiQueryFile: "filename"
MSBiDiQueryFile を使用して、プリンター ドライバーの自動構成 BidiQuery と BidiResponse データを含む GPD または GDL ファイル名を指定します。 GPD または GDL ファイル名には、パスを指定しないでください。
次のコード例は、部分的な PPD ファイル内の MSBiDiQueryFile の例を示しています。
*MSBidiQueryFile: "ACnfgPS.GDL"
MSXPSMaxCopies
MSXPSMaxCopies 属性は、次の形式を使用します。
*MSXPSMaxCopies: "int"
MSXPSMaxCopies を使用して、XPSDrv プリンター ドライバーでサポートできるコピーの最大数を指定します。
次のコード例は、部分的な PPD ファイル内の MSXPSMaxCopies の例を示しています。
*MSXPSMaxCopies: "99"