« [P22] WPF: Grid の ShowGridLines の非実用性を補う方法 | トップページ | [P24] ダイナミックディスクにしてしまったハードディスクをベーシックディスクに戻す方法 »

[P20] WPF下における印刷プレビュー画面作成の容易化

  WPF下においては、印刷に際しての厳密な意味での従来型印刷プレビューでは
なく、印刷段階に入る前に、(・・・・ということは、編集段階などで事前に、)容易に
実質的な印刷プレビュー(Preview)がみられるようなプログラミングが簡単にできる
ようです。

 [注] 厳密な意味での従来型印刷プレビューに関しては、以下を参照
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=2611504&SiteID=7
   ここの、上から10番目の記事(現時点では、最下段の記事)
    ・ ・ ・これは、私の投稿に対する (稍丼 / yayadon)さんの解説です。


私が実際に試みた例で説明するのがわかりやすいと思います。
年賀状の宛名印刷プログラムでは、実際に入力した1行の『長い』住所表示が
はがきに収まっているか、はみ出していないか、気になる場合があります。
いろいろな対策があるにせよ、実際に印刷プレビューを見て確認できれば、それに越したことはありません。
ところが、WPF下においては、印刷段階に至らない、単なる住所・氏名の入力・編集段階で、事前に簡単に印刷プレビューを確認できるプログラムが手間をかけずに、しかも簡単にできてしまいます。

これは、WPF下での印刷の概略が一通りわかれば、あとは実に簡単な話です。

WPF下での印刷過程(通常の複数ページ印刷)では、各ページ(一枚の年賀はがき)ごとに、一つの 印刷用 Canvas を用意することになり、
その Canvas 上に配置した描画コントロール(Label, TextBlock など)内に、すべて表示データ(住所・氏名等)をセットした上で、
その Canvas 情報をプリンターに送ることになります。

    [注]  この点に関しては、このブログのカテゴリー『パソコンの窓』内にある
          [P14] WPF: プリンター印刷(XPS)の記事を参照。

  http://hokkai53.cocolog-nifty.com/blog/2008/01/p14wpf_xps_9e5d.html

そこで、この印刷用の Canvas 作成、表示データ(住所・氏名等)読み込みのコード部分をそのまま使用して、
1ページ(年賀はがき1枚)あたりのデータをセットした Canvas を用意することは簡単にできますし、手間もかかりません。
そのための工夫、ないしコードを印刷用の本コードに少し加えておけば足ります。

他方、プレビュー用のサブ・ウインドウ(Window クラス)を用意します。
そして、上記の、データをセットした Canvas を、このウインドウの子要素として繋ぐだけで、印刷のプレビュー画面が表示されます。ただ、それだけです。

厳密な意味での、印刷段階に入ってからの印刷プレビューよりも、編集段階でプレビューできてしまうということが、たいへん便利で実用的です。

以上

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
目次に戻る ・・・・ 左欄のカテゴリー 【パソコンの窓】 をクリック
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

|

« [P22] WPF: Grid の ShowGridLines の非実用性を補う方法 | トップページ | [P24] ダイナミックディスクにしてしまったハードディスクをベーシックディスクに戻す方法 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« [P22] WPF: Grid の ShowGridLines の非実用性を補う方法 | トップページ | [P24] ダイナミックディスクにしてしまったハードディスクをベーシックディスクに戻す方法 »