2019年10月8日火曜日

WPF 印刷

う~ん、難しいですね。  WPF の印刷。
Form の時ですら、面倒と思っていたのですが、
WPF は依存関係が有るだけに、ややこしいです。
其処が理解出来れば、後は、ひたすら、要素を書くのと格闘 ... 。


モニタ等に入出力するのが基本のパソコン。
プログラム言語は其処から学習がスタートします。
良く目にする例は Hello World を画面に出すもの。

其処から始まり次第に複雑で専門的になって行く訳ですが、
印刷もそうした特殊分野扱いです。

紙に残す為の 印刷 ... 。
IT が高度化しても、ペーパーレスにはなかなか行き着きません。
やはり、紙に出すのも 必要 ... 。

でも、やはり、その要求は業務用途が多い為か、
検索して見れば、 解説の類も少なめ。
利用者側から見ても、印刷は、対象が単純で無くなると、
グッと敷居が高くなります。
A4 等の定型用紙に印刷する例が殆どです。
単純に、用紙を横にするのも ままならない 筈です。

そして、WPF の場合、
プレビューの為のコントロールが提供されていない事に気付きます。
印刷 を司る Print Dialog ( System.Windows.Controls 名前空間 ) は提供されていますが、
其れを Window に組み込んでも、
ちゃんと値を設定しない限り、単にダイアログが表示されるだけで、
印刷すら出来ません。

ダイアログの向こう側にあるハード(プリンタ)設定は、
書く側が面倒を見てやらないといけません。
用紙上に描かれる事になる文字や図や写真の類、そして、ダイアログでの指定値、
それらを相互に管理するのは、書く側に委ねられています。

そして、ダイアログで、プリンタ固有の機能を規定する GUI 部分は、ユーザーに開かれています。
そうです。  書き方に依っては、プログラムの意図に反して、別の設定を行う事も可能なのです。

言い換えれば、
ダイアログ 及び そこから呼び出し可能なプリンタの詳細設定 に関して、
どうプログラム側が対応しているのか、ユーザーからは知る術がありません。

実際に、動かして見て、初めて分かる、
印刷機能の 良し悪し ... 。  融通が効くか効かないか ... 。

また、 組み込まれた、プレビュー機能の実装パターンの 実に多様な事 ... 。

  WPF 用に DocumentViewer が提供されてはいますが ... 。
  プリンタ固有ダイアログ との相互調整は ... 。
  細かく考えて行くと、頭がオカシクなりそうです。 


やはり、印刷 は ... 難しい!。




0 件のコメント:

コメントを投稿