▼ Mr.XRAYさん
> (昔は,この手の質問がいっぱいあったんですよね --- 遠い目)
マスター もう少しお付き合いください。
プリンタ関係のサンプルプログラムの記事を読み直してみて、分かったことも
多くあるのですが、色々と混乱して分からなくなってしまいました。
具体的な例にしての質問です。
パソコンに2台のプリンタが接続されています。
インクジェットと連続帳票専用プリンタです。
「通常使うプリンタ」(デフォルトのプリンタ) は、OSに登録(定義)されている
プリンタで、色々なアプリ(メモ帳、Word、Execl等)で印刷する時に自動で
選択されているプリンタですね。
インクジェットプリンタでプリンタ番号を2としてください。
プロパティはA4用紙・縦です。
連続帳票印刷アプリは連続帳票専用のプリンタを使います。
専用プリンタのプリンタ番号を3としてください。プロパティは連続用紙(かな?)
連続帳票印刷アプリを起動直後は、OSの「通常使うプリンタ」のままではダメ
(無駄紙大量発生)なので、帳票印刷する前に使用するプリンタの変更が
必要になります。
そのプリンタの変更を人間ができる場合は、「PrinterSetupDialog」でプリンタを
連続帳票専用プリンタに変更すれば、プロパティも連続用紙に変わってくれる?
(多分)ので、後は印刷すれば良い事になります。
でも、通常は「無駄紙大量発生」を防ぐため、使用するプリンタの変更をアプリの
コードで行いますよね。
そのコードが
Printer.PrinterIndex := 3;
// または
//Printer.PrinterIndex := Printer.Printers.indexof('OKI XXXX');
// OKI XXXX は帳票プリンタの名前(仮称)
Printer.GetPrinter(ADevice, ADriver, APort, ADeviceMode);
Printer.SetPrinter(ADevice, ADriver, APort, 0);
Printer.GetPrinter(ADevice, ADriver, APort, ADeviceMode);
// これで連続帳票専用プリンタ(仮称 OKI XXXX)に変更できたのでしょうか?
この時に、プロパティも連続用紙に変わっているのでしょうか?
無事に連続帳票の印刷が済んでアプリを終了したら、「通常使うプリンタ」は
インクジェットに戻っているのでしょうか?(上記コードはアプリ内だけ有効?)
自分で試せばいいのですが、プリンタが1台しかないもので…。
|