喫茶XRAYトップページ


[125] 印刷設定の疑問返信 削除
2005/2/16 (水) 21:19:06 Texwork
いつぞやはメールにて丁寧な対応をしていただきありがとうございました。
まだまだ初心者から脱皮できません、いつになったら初心者から脱皮できるのか
苦笑いが続きます。たぶん初心者というか、基礎が出来ていないため苦笑いされることと思います。


さて、本題なのですが、印刷に関して疑問あります。

現在「プリンタ設定コンポーネント」と「印刷プレビュー制御コンポーネント」を使用させていただいているのですが、
このコンポーネントを使用して自分の開発環境で設定してしまった場合。
ほかの環境(どのようなプリンターかも不明)でソフトを動かした場合どうなるのか?が非常に疑問に思います。
どのように考慮してプログラムを作るべきなのでしょうか?
印刷プレビュー制御コンポーネントを使用させていただいて何も考えずにプログラムを作っていたのですが、プレビューされたらそれがそのまま出るのだろうか?
と一人でメビウスの輪に突入してしまいました。


自分がわかっていない部分が多すぎて(理解できていない部分がどこなのか)どのようにわかっていない部分を消化すればよいのか
糸口がつかめないでいる状態です。


[126] Re:印刷設定の疑問返信 削除
2005/2/16 (水) 22:31:49 Mr.XRAY
▼ Texworkさん

> このコンポーネントを使用して自分の開発環境で設定してしまった場合。
> ほかの環境(どのようなプリンターかも不明)でソフトを動かした場合どうなるのか?が非常に疑問に思います。
> どのように考慮してプログラムを作るべきなのでしょうか?


問題は,プリンタの設定関係(用紙,印刷方向)だと思うのですが.
なるべく稼働先のプリンタドライバと同じものを用意して開発しています.
プリンタ設定コンポで設定した値が再現しない場合は,また,安全のために

http://homepage2.nifty.com/Mr_XRAY/Delphi/plSetPrinter/SaveAndLoad.htm

を使用することもあります.

plPrev1.plSetPrinter.SaveToFile( );
plPrev1.plSetPrinter.LoadFromFile( );
(実は単票形式のものが多いので,ほとんどplTackPrevですが)

http://homepage2.nifty.com/Mr_XRAY/Delphi/plSamples/T_FormPane2.htm

にこのメソッドを使用したサンプルがあります.このサンプルコードでは,
3つのプリンタ設定コンポを使用していますが,上記のメソッドを使用すれ
ば,実際には1つで使い回しが可能です(保存ファイルで区別する).
ただし,この方法は,アプリを利用する方が一度は設定する必要があります.

また,ユーザ定義サイズの時は,LoadFormの代わりにユーザ定義のメソッド
を使っています.

http://homepage2.nifty.com/Mr_XRAY/Delphi/plSetPrinter/NetWorkIni.htm
も要注意ですね.

印刷プレビューの前にLoadFromFileではなく,用紙サイズや方向のメソッド
(NkPrinterも含めて)を使用している方もいるようです.
とにかく,実際にやってみて,自分の方法を見つけてみることだと思います.

プリンタ設定コンポ自体は,プリンタが変更になっても設定を再現させる目
的で開発しものなんですが...
テストそのものは,開発環境でプリンタ(ドライバ)を変更してみたりして
できると思います.

実際にやってみて問題があれば,また連絡下さい.
また,オンライン・マニュアルも誤字脱字が多いのですが,一生懸命作成
していますので...




[127] Re2:印刷設定の疑問返信 削除
2005/2/17 (木) 00:05:23 Texwork
▼ Mr.XRAYさん回答ありがとうございます。
整理しながら、考えて見ます。

[138] Re3:印刷設定の疑問返信 削除
2005/2/21 (月) 00:09:02 Mr.XRAY
▼ Texworkさん

疑問に対する回答にはなっていなかったかも知れません.
それに長々と書きすぎました.

印刷プレビュー制御コンポーネントの開発趣旨は,印刷状態をプレビュー
するということで開発しています.
プリンタが変更になっても,A4やB5とか,どのプリンタドライバにある
用紙であれば,設計時,つまり開発の時に設定しておけば問題はない
と考えています.

もし,そうならなければバグです.

あとは,アプリの利用者に,一度,プリンタ(用紙サイズ)などを設定
してもらい,それを保存読出しする方法を考えることができます.
これなら確実です.
これは,例えば,テストプログラムにありますが,[何々に使用するプリ
ンタの設定]等のボタンで,PritnerSetupDialogを表示するというもの
です.帳票毎に設定することも考えられます.

ただし,一部のプリンタや,ユーザ定義(カスタム)用紙などでは,OSや
プリンタドライバによっては再現できない場合があります.
Windows2000以上で,独自のドライバでない時は,大抵うまくいく様です.




[143] Re4:印刷設定の疑問返信 削除
2005/2/23 (水) 23:51:23 Texwork
▼ Mr.XRAYさん
> プリンタが変更になっても,A4やB5とか,どのプリンタドライバにある
> 用紙であれば,設計時,つまり開発の時に設定しておけば問題はない
> と考えています.
> あとは,アプリの利用者に,一度,プリンタ(用紙サイズ)などを設定
> してもらい,それを保存読出しする方法を考えることができます.
> これなら確実です.
> これは,例えば,テストプログラムにありますが,[何々に使用するプリ
> ンタの設定]等のボタンで,PritnerSetupDialogを表示するというもの
> です.帳票毎に設定することも考えられます.


「印刷プレビュー制御コンポーネント」部分はこの解説を読ませていただいて理解できました。
「プリンタ設定コンポーネント」が必要な理由がいまいち理解できません

印刷プレビュー制御コンポーネントに関して
 ★Ver4.0では,特にプレビューフォームとプリンタ設定コンポーネントを指定しなくても
  使用可能にし,より使いやすい様に改良しました.

となっているのですが、もしかして、もはや別物でよろしいのでしょうか?
http://homepage2.nifty.com/Mr_XRAY/Delphi/plPrev/index.htm
には必要コンポーネントに「プリンタ設定コンポーネント」と書かれていて
頭の悪い私には、何がなんだか・・・という状況です。

ですが、前出の説明で、「印刷プレビュー制御コンポーネント」の疑問は
解消したとおもいます。
ありがとうございました。


[144] プリンタ設定コンポが必要な理由返信 削除
2005/2/24 (木) 00:12:03 Mr.XRAY
▼ Texworkさん

> 「印刷プレビュー制御コンポーネント」部分はこの解説を読ませていただいて理解できました。
> 「プリンタ設定コンポーネント」が必要な理由がいまいち理解できません


これはこういうことです.
印刷プレビュー制御コンポを使用する時は,必ず,プリンタ設定コンポが,
その開発環境で,コンポーネントとして利用可能な状態でなければなりま
せん.つまり,コンポーネントのインストール(登録)が必要です.
(正確に言うと,plSetPrinter.pasがパスの通ったフォルダにあればよい)

ただし,作成するアプリで,特にプリンタ設定コンポを配置(ビジュアルに)
しなくても,印刷プレビュー制御コンポは使用可能です.
この時,印刷プレビュー制御コンポは,現在のパソコンの,通常使用する
プリンタの設定情報を元に描画をします.
(実際にはplSetPrinter.pasのメソッド類を使用しています)

この通常使用するプリンタの設定値というのは,多くの場合,A4縦となって
います.
したがって,それ以外の用紙サイズや印刷の方向で使用する時は,プリンタ
設定コンポをFormに配置して,そのプリンタ設定コンポでプリンタの設定
をします(コンポをダブルクリックすると設定のダイアログが現れます).

すると,印刷プレビュー制御コンポは,自動的に,Formに配置したプリンタ
設定コンポを探し出し,その設定を利用して描画します.
もし,複数のプリンタ設定コンポが配置してある場合には,印刷プレビュー
制御コンポのplSetPrinterプロパティで,使用するプリンタ設定コンポを
指定してやれば,その設定を使用します.

この設定は,作成したアプリ(EXE)を別のパソコンで実行しても原則的には
再現します.ただし,OSやプリンタドライバによっては,再現しない場合が
あります.
これが,No138の最後の文章の意味です.

またまた長くなってしまいましたが...
不明な点は,いくらでも聞いて下さい.マニュアルもそんなやり取りの中で
いろいろ修正して行きたいと考えています.
これがオンライン・マニュアルの利点じゃないかと... (^_^;)

[備考]
プリンタ設定コンポは,Formに配置した時点では,そのパソコンの通常使用
するプリンタのデフォルトの設定になっています.


[146] プリンタ設定コンポが必要な理由返信 削除
2005/2/24 (木) 00:27:16 Mr.XRAY
▼ Texworkさん

> すると,印刷プレビュー制御コンポは,自動的に,Formに配置したプリンタ
> 設定コンポを探し出し,その設定を利用して描画します.


ついでに...
Delphiに附属しているQuick Reportはこれが困難です.
その内部でプリンタオブジェクトを生成しているため,外部で設定した
内容は無視されます.
ただし,Quick Reportはいわゆるレポート作成ツールですので,ビジュ
アルな設計が可能です.


[147] Re5:印刷設定の疑問返信 削除
2005/2/24 (木) 07:52:39 Mr.XRAY
▼ Texworkさん

>  ★Ver4.0では,特にプレビューフォームとプリンタ設定コンポーネントを指定しなくても
>   使用可能にし,より使いやすい様に改良しました.


(該当プロパティを)指定しなくても使用できますが,
                  ^^^^
プレビューフォームの元であるplPrevfrm.pas,plPrevfrm.dfm,
plSetPrinter.pasはパスが通ったフォルダに必要です.
なくてもいいという意味ではありません.


INCM/CMT
Cyclamen v3.82