印刷サポート仮想プリンターの MSIX マニフェスト仕様
この機能を使用すると、Windows がサード パーティの V3/V4 印刷ドライバーを非推奨にする予定であるため、従来の V3/V4 印刷ドライバーを必要とせずに、仮想プリンターに印刷できます。 詳細については、「Windowsのサード パーティ製プリンター ドライバーのサービス終了プラン」を参照してください。
仮想プリンター アーキテクチャは、サード パーティ製ドライバーのないソフトウェア プリンターの実装を容易にします。 このアーキテクチャにより、ISV (独立系ソフトウェア ベンダー) は、サードパーティの V3/V4 ドライバーで現在サポートされている機能を実装するアプリケーションとしてソフトウェア プリンターを実装できます。
この記事では、アプリケーション自体をソフトウェア プリンターとしてマニフェストに登録する方法について説明します。
詳細については、次の記事を参照してください。
トピック | 説明 |
---|---|
印刷サポート アプリの設計ガイド | デバイスの印刷サポート アプリ (PSA) を実装しているプリンター OEM および IHV のガイダンスと例を示します。 |
印刷サポート アプリ v3 API 設計ガイド | デバイスの v3 印刷サポート アプリ (PSA) を実装しているプリンター OEM および IHV のガイダンスと例を示します。 |
印刷サポート アプリ v4 API 設計ガイド | デバイスの v4 印刷サポート アプリ (PSA) を実装しているプリンター OEM および IHV のガイダンスと例を示します。 |
印刷サポート アプリの関連付け | 印刷サポート アプリ (PSA) をプリンターに関連付けるガイダンスと例を示します。 |
印刷サポート アプリ (PSA) は、IHV がサードパーティ製ドライバーを使用せずに IPP プリンターにカスタマイズを追加するために導入されたアーキテクチャです。 ソフトウェア プリンターへの移行を容易にするために、すべての API は PrintSupportApp API 名前空間の一部であり、仮想プリンター アーキテクチャに適用できる一部の PSA コントラクトを再利用します。
新しいマニフェスト コントラクトは、Windows.printSupportWorkflow コントラクトに似ていますが、このコントラクトは仮想プリンターのインストールに使用されるため、より多くのエントリを必要とします。
新しい Windows 展開拡張機能ハンドラー (DEH) は、マニフェスト宣言に基づいて仮想プリンターをインストールし、Windows 印刷コンポーネントは、ユーザーがインストールされた仮想プリンターに印刷するときにアプリを呼び出します。
マニフェスト属性
printSupport:Extension - 仮想プリンターの拡張エントリ
カテゴリ - Windows.printSupportVirtualPrinterWorkflow 仮想プリンターを実装するアプリの新しいコントラクト
PrintSupportVirtualPrinter - 各エントリは、アプリケーションと共にインストールする 1 つのソフトウェア エンドポイント印刷キューを指定します。 各 PrintSupportVirtualPrinter エントリには、次の属性を指定できます。
PreferredInputFormat - この属性は、仮想プリンターの優先入力 PDL 形式を示します。 Windows 印刷システムでは、すべての印刷パスの PDL データを仮想プリンターに渡す前に、この形式が生成されます。 このフィールドには、application/oxps または application/postscript のいずれかの値のみを指定できます。 このフィールドに他の形式が指定されている場合、インストールは失敗します。 フィールドが指定されていない場合、アプリケーション/oxps は、インストールされている仮想プリンターの優先 PDL 形式として設定されます。
OutputFileTypes - この属性が appx マニフェストで指定されている場合、Windows 印刷システムはファイル プリンターとしてマークされたプリンター キューを作成し、アプリケーションが仮想プリンターへの印刷を開始すると、ユーザーに [名前を付けて保存] ダイアログが表示されます。 このフィールドの値には、pdf/pwgr/ps などのターゲット ファイル拡張子が含まれている必要があります。これらの値はドライバー データに格納され、許可された拡張機能として [ダイアログとして保存] に追加されます。 仮想プリンターがファイルの印刷動作を望まない場合 (これには、クラウドに印刷データを格納する仮想プリンターや、OneNote などのアプリケーションにデータを送信するプリンターが含まれます)、このフィールドをマニフェストに追加しないでください。
サポートされている形式 - この要素は、仮想プリンターを使用して、処理できるすべての PDL 形式を指定できます。 これは、Microsoft Edge などのパススルー印刷アプリケーションに使用され、PDF などのサポートされている形式を識別し、Windows 印刷システムの間で変更を加えることなく、PDF ストリームを仮想プリンターに直接渡します。 このフィールドには、子要素 SupportedFormat を含めることができます。
SupportedFormat - 要素は、単一のパススルー PDL 形式を指定し、次の属性を持つことができます。
Type - この属性は、Virtual Printer でサポートされている MIME の種類を指定するために使用されます
MaxVersion - この属性は、仮想プリンターが受け取ることができる PDL 形式の最大バージョンを指定します。 MaxVersion 値の形式は MajorVersion.MinorVersion である必要があります。 Windows 印刷システムが他の形式の場合、プリンターのインストールに失敗します。 MajorVersion と MinorVersion には数値のみを指定できます。 文字が存在する場合、バージョン フィールドは無効になり、無視されます。
PdcFile - この属性は、アプリケーション パッケージ内のリソース ファイルを指す必要があります。 このファイルには、プリンター機能を定義するための印刷デバイス機能 XML 形式の内容が含まれている必要があり、カスタム機能/オプションまたはパラメーターを定義するために使用する必要があります。 これは必須フィールドであり、値が存在しない場合、またはファイルの内容が有効な PDC 形式でない場合、プリンターのインストールは失敗します。
PdrFile - 指定された場合、この属性はアプリケーション パッケージ内のリソース ファイルを指す必要があります。 ファイルには、XML 形式の印刷デバイス リソースが含まれている必要があります。 アプリでカスタム印刷設定をローカライズする場合は、このフィールドを指定する必要があります。 このフィールドは省略可能であり、印刷設定のリソースローカライズは、このフィールドが存在しない場合、印刷システムによって処理されます。
DisplayName - インストールする仮想プリンター キューの名前を指定します。 この文字列の制限は、Windows プリンター名の制限と同じです。
PrinterUri - PS アプリケーションがプリンターを識別するために使用できる一意の URI を指定します。 1 つの仮想プリンター アプリで複数のソフトウェア エンドポイントを指定でき、その結果、複数のプリンターがインストールされます。 PrinterUri フィールドを使用して、これらのプリンターを区別できます。 この URI 出力は、IppPrintDevice::P rinterUri API から提供されます。 URI が指定されていない場合、Windows はプリンターに任意の一意の URI を割り当てます。
マニフェスト サンプル
<Extensions>
<printsupport2:Extension Category="windows.printSupportVirtualPrinterWorkflow" EntryPoint="Tasks.PrintSupportWorkflowBackgroundTask">
<PrintSupportVirtualPrinter DisplayName="ms-resource://PRINTER_NAME1" PrinterUri="contoso-psa:printer1" PreferredInputFormat="application/postscript" OutputFileTypes="ps;pdf" PdcFile="Config\PRINTER_PDC1.xml" PdrFile="Config\PRINTER_PDR1.xml">
<SupportedFormats>
<SupportedFormat Type="application/postscript" />
<SupportedFormat Type="application/pdf" MaxVersion="1.7" />
</SupportedFormats>
</PrintSupportVirtualPrinter>
</printsupport2:Extension>
<printsupport2:Extension Category="windows.printSupportVirtualPrinterWorkflow" EntryPoint="Tasks.PrintSupportWorkflowBackgroundTask">
<PrintSupportVirtualPrinter DisplayName="ms-resource://PRINTER_NAME2" PrinterUri ="contoso-psa:printer2" PreferredInputFormat="application/oxps" OutputFileTypes="pwgr;pdf" PdcFile="ms-appx:///PRINTER_PDC2.xml" PdrFile="ms-appx:///PRINTER_PDR2.xml">
<SupportedFormats>
<SupportedFormat Type="application/pdf" MaxVersion="1.7" />
</SupportedFormats>
</PrintSupportVirtualPrinter>
</printsupport2:Extension>
<printsupport:Extension Category="windows.printSupportExtension" EntryPoint="Tasks.PrintSupportExtensionBackGroundTask"/>
<printsupport:Extension Category="windows.printSupportSettingsUI" EntryPoint="PrintSupportApp.App"/>
<printsupport:Extension Category="windows.printSupportJobUI" EntryPoint="PrintSupportApp.App"/>
</Extensions>
関連記事
Windows でのサード パーティ製プリンター ドライバーのサービス終了プラン