次の方法で共有


OpenXPS 印刷のアプリサポート

OpenXPS は、ドキュメントの Open XML Paper Specification 形式であり、欧州コンピューター工業会 (ECMA) 標準仕様に基づいています。

Windows 8は、v4 印刷ドライバー モデルを介した OpenXPS 印刷の完全なサポートを提供し、Microsoft XPS 形式の継続的なサポートと並べて提供します。 このトピックでは、Windows アプリケーション開発者に関連するこのサポートの部分に焦点を当てています。 OpenXPS サポートのドライバー要件については、「 OpenXPS のドライバー サポート」を参照してください。

印刷システムへの XPS データの送信

すべての XPS 印刷ジョブを印刷システムに送信するには 、IPrintDocumentPackageTarget を使用することをお勧めします。 IPrintDocumentPackageTarget は 、シリアル化なしで XPS オブジェクト モデル (OM) を受け入れ、全体的なパフォーマンスを向上させるのに役立ちます。

IPrintDocumentPackageTarget インターフェイスの簡単な概要を次に示します。

  • このインターフェイスは、カスタマイズされたソリューションやデスクトップ アプリケーションからの印刷をサポートします。

  • デスクトップ アプリの場合、 これは StartXpsPrintJob1 の代わりに使用できます。

  • Windows 7 Service Pack 1 (SP1) + Platform Update で使用でき、Windows 8。

  • これらの API を使用するには、プロジェクトに DocumentTarget.h を含めます。

OpenXPS ドキュメントを使用するアプリケーションでは、OpenXPS の MIME の種類は次のようになります。

application\\oxps

XPS Print API への OpenXPS データの送信

OpenXPS 固有の XPS OM は、MSXPS と OpenXPS の両方を受け入れ、どちらの形式に変換およびシリアル化するためのメソッドも提供します。 これにより、アプリケーション開発者は、必要にじてターゲット ドライバーに依存しないようにすることができます。 つまり、アプリ開発者は、印刷システムが必要な変換を処理することを認識して、いつでも印刷ジョブを XPS OM として StartXpsPrintJob1 または IDocumentPackageTarget に送信できます。

もちろん、XPS 形式間の変換を防ぐことで、エンド ツー エンドのパフォーマンスが向上します。 アプリケーションから、開発者は次のレジストリ キーをチェックして、対象の印刷ドライバーの優先 XPS 形式を決定できます。

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\[PrintDriverName]\PrintDriverData\XpsFormat

優先する XPS 形式が決定されると、アプリケーションは変換を必要としない XPS OM オブジェクトを提供できます。 特に注意すべき点は、MSXPS での HD Photo と OpenXPS での JPEGXR の使用です。 JPEGXR から HD Photo への変換は比較的軽量です。この変換の主な違いは、HD Photo は JPEGXR に必要な 4 つの制御ビットを無視するためです。 ただし、HD Photo から JPEGXR に変換するには、必要な制御ビットを生成するためにイメージ全体を再エンコードする必要があります。 したがって、高解像度イメージに JPEGXR イメージを提供することで、OpenXPS との互換性が確保され、MSXPS のイメージの変換コストが最小限に抑えられます。

Xpsobjectmodel_1.h ヘッダーは、OpenXPS の追加の API とオブジェクトを定義します。 また、IXpsOMObjectFactory1 インターフェイスには、画像変換のための追加のメソッドが用意されています。 構文を次に示します。

IXpsOMObjectFactory1->ConvertHDPhotoToJpegXR(IXpsOMImageResource *imageResource);

IXpsOMObjectFactory1->ConvertJpegXRToHDPhoto(IXpsOMImageResource *imageResource);

Windows 8は、次の新しい列挙体と更新された列挙体を提供します。

新しい列挙:

XPS_DOCUMENT_TYPE

更新された列挙

XPS_IMAGE_TYPE

新しい GetDocumentType メソッドを使用すると、アプリケーションでドキュメントの XPS 形式を決定できます。 これらは、 IXpsOMObjectFactory1IXpsOMPackage1および IXpsOMPage1 で使用できます。 メソッドの一覧を次に示します。

IXpsOMObjectFactory1::GetDocumentTypeFromFile
IXpsOMObjectFactory1::GetDocumentTypeFromStream
IXpsOMPackage1::GetDocumentType
IXpsOMPage1::GetDocumentType

Windows 8では、OpenXPS をサポートする次の新しいエラー コードが提供されます。

XPS\_E\_MISMATCHED\_NAMESPACE。
名前空間が一致しない場合、このエラーが返されます。
XPS\_E\_ABSOLUTE\_REFERENCE。
MSXPS が内部参照で絶対 URI を使用している場合、または内部参照を使用してストリーム内でシリアル化しようとすると、このエラーが返されます。 これは、XPS OM によって相対 URI が生成されるためです。 また、MSXPS では相対 URI と絶対 URI の両方がサポートされていますが、OpenXPS には相対 URI が必要です。

OpenXPS のドライバー サポート

IPrintDocumentPackageTarget

IXpsOMObjectFactory1::GetDocumentTypeFromFile

IXpsOMObjectFactory1::GetDocumentTypeFromStream

IXpsOMPackage1::GetDocumentType

IXpsOMPage1::GetDocumentType

XPS_DOCUMENT_TYPE

XPS_IMAGE_TYPE