印刷処理をさらに細かく制御する場合は、GetPageImages メソッドを使用してグリッドを自動的にいくつかの画像に分割し、各画像を個別のページにレンダリングできます。各画像はグリッドの一部を 100% 正確に表現し、スタイル、カスタム要素、各ページに繰り返し表示される行ヘッダーと列ヘッダーなどを含みます。
GetPageImages メソッドを使用して、呼び出し元は、画像を拡大縮小することもできます。これにより、グリッド全体を実際のサイズでレンダリングしたり、1 ページに収まるように、または 1 ページの幅に合わせて拡大縮小することができます。
ページ画像を取得したら、WPF の印刷のサポートを使用して、それらを柔軟にドキュメントにレンダリングできます。たとえば、複数のグリッド、チャートなどのコンテンツを含むドキュメントを作成できます。また、ヘッダーやフッターをカスタマイズしたり、レターヘッドを追加することもできます。
WPF の印刷フレームワークは異なっています。以下のセクションでは、GetPageImages を使用して印刷ドキュメントに C1FlexGrid をレンダリングする方法を示します。
WPF での C1FlexGrid の印刷
WPF でドキュメントを印刷する場合は、Silverlight の場合と多少異なる手順を実行する必要があります。
次のコードは、このメカニズムのサンプル実装です。また、このコードは製品サンプルのPrintingWPFを参考にしてください。
FlexPaginator クラスは、ページ画像を提供し、概念的には Silverlight で使用される PrintPage イベントハンドラに似ています。このクラスは次のように実装されます。
このコンストラクタは、ページ画像を作成します。これらの画像は、後で印刷フレームワークがページネータの GetPage メソッドを呼び出すときに、ページにレンダリングされます。
前の例と同様に、PageTemplate ヘルパークラスを使用して、グリッド画像を保持し、マージン、ヘッダ、およびフッタを提供します。
残りのページネータメソッドは、細かい実装を行います。
次の図は、グリッドが XPS ファイルにレンダリングされた場合のドキュメントです。このサンプルで使用したカスタムの評価セルも含めて、正確に示されています。行および列ヘッダ、単純なページヘッダ、および標準の "ページ n/m" ページフッタは、自動的にすべてのページに含まれます。