.NET Framework 4.6 インストール環境において描画したオブジェクトが印刷されない場合があります。

 

こんにちは、Platform SDK (Windows SDK) サポートチームです。
今回は .NET Framework 4.6 インストール環境にて、WPF アプリケーションから印刷処理を実施しても何も印刷されない現象についてお知らせします。

 

概要 WPF アプリケーション上で作成した描画オブジェクトを印刷するシナリオにおいて下記条件を満たしている場合、印刷に失敗します。

・ .NET Framework 4.6 がインストールされた Windows 8 / Windows Server 2012 以降の環境。
・ 印刷対象が Pen、Line や Rectangle 等の線や図形オブジェクトのみで生成された描画オブジェクトを印刷。
・ XPS非対応のプリンタドライバで印刷

この条件を満たしている場合、以下のように印刷処理が失敗します。

・ 印刷 (紙の出力) が行われません。
・ 印刷が行われなくともアプリケーション上で例外は発生しません。
・ 印刷処理を実行してもプリンタキューに待機中のジョブが何も表示されません。
*XPS対応のプリンタドライバを使用した場合は発生しません

なお、描画オブジェクトの中に Image オブジェクトが存在している場合は正常に印刷処理が行われます。

 

原因 本現象の根本原因は .NET Framework 側の処理ではなく、.NET Framework 内部から呼び出している OS の XPS モジュール内の不具合の影響により発生しています。この現象は .NET Framework 4.5.2 を利用した WPF アプリケーションの場合発生しません。これは .NET Framework 4.5.2 内にある不具合が影響しています。.NET Framework 4.6 では .NET Framework 4.5.2 の問題が修正されたことで、潜在的にあった XPS の問題が表面化し、この問題が発生しています。

 

回避策
WPF のコード上から回避する方法はございません。

 

今後の対応予定

本現象につきましては現在弊社内で OS の XPS モジュールの問題に関する調査を行っています。

現時点では修正の提供や時期は未定です。