VC++の勉強を始めたばかりの初心者です。
ダイアログベースのVC++アプリを作成しています。
以下に私が実現したい事を記述させて頂きますので、
どなたかご存知の方がいらっしゃいましたら、
ご教授頂ければ幸いです。
【実現したいこと】
A3、A4サイズのTIFFファイルを
A3サイズのTIFFデータはWindowsPrinter1(Driver)に
A4サイズのTIFFデータはWindowsPrinter2(Driver)に
サイズ毎に振り分けて印刷させたいと考えています。
(TIFFの用紙サイズ・向きは既に分かっているもの考えて下さい)
その際に印刷ダイアログは表示させずに、
印刷処理を実行させたいと考えています。
【質問事項】
①WindowsDriverの用紙サイズと向きを印刷前に設定して
Imagingを起動して印刷させるにはどうしたら良いのでしょうか?
②出力先のPrinterDeviceの切替はどのようにしたら良いのでしょうか?
MSDNマニュアルを色々読んで見たのですが、
よく分からず頭を抱えています。
どなたか助けて下さい。
どうも質問の内容が理解できないのですが、
Imagingを起動するというのはいったいどういうことですか?
Imagingというのはアプリケーションでしょうか?
Imagingがアプリだとするとアプリが印刷する時のパラメータを
外で設定してそのアプリに印刷させるということでしょうか?
自分のプログラム内で描画してプリンタに送るというのでは
ないんですか?
PATIOさん レスありがとうございます。
私の質問内容が不十分で申し訳ありません。
ImagingとはTIFFデータを表示する
WindowsのViewerアプリケーションです。
Windowsのファイルをアプリケーションを起動して印刷させたいと考えています。
ご指摘のとおり、
アプリケーションが印刷する時のパラメータ(用紙サイズ・向き等)を
外で設定させて、アプリケーションで印刷する方法を教えて頂きたいと考えています。
具体的には、以下の機能を実装したプログラムを作成しようとしています。
1.ダイアログベース画面にリストボックスと出力ボタンを配置
2.リストボックスに出力する対象ファイルのファイル名をリスト表示
3.出力ボタンを押すとリストボックスに表示されているファイルを連続自動印刷する
その際に、各ファイルの大きさ・向きを判定して適切な用紙をプリンタドライバに
セットして印刷させる
上記内容で各ファイル(TIFF)のサイズを判定するとことろまでは
実現できたのですが、プリンタドライバの用紙サイズと向きを設定して
印刷させる仕組みが分からず困っています。
MSDNライブラリで「DEVMODE 構造体」というものを見つけ、
プリンタドライバの用紙サイズや向きを設定することが出来そうな感じではいるのですが
どうすれば良いのか全くわかりません。
以上の説明でお分かり頂けましたでしょうか?
環境は、Windows2000 VC++6.0(SP2) MFC使用です。
宜しくお願い致します。
アプリケーションの起動時のオプションに街頭のものがあれば、
話は簡単ですが、そうでない場合は面倒そうな気がします。
アプリケーション側がその時点のデフォルトプリンタを使用すると
仮定すると、アプリケーション起動前にデフォルトプリンタの切り替えや
設定値の変更で何とかなりそうですが、アプリケーション自体が自分が
以前に印刷に使ったプリンタを覚えているような場合は、それでは駄目でしょう。
また、印刷ダイアログを表示しないでというのもアプリケーション側で
コントロールしているはずなので起動オプションで何とかできないのであれば、
通常に考えれば無理だと思います。
やるとしたら特定のウインドウを検索するロジックを一定時間ごとに動かして
そのウインドウが見つかったら特定のボタンを押すような動作をエミュレーション
するくらいしか思いつきません。
きめ細かな制御が必要なんでしたら、自分で印刷するアプリを組む方が良いと思います。
失礼。
(誤)アプリケーションの起動時のオプションに街頭のものがあれば、
(正)アプリケーションの起動時のオプションに該当のものがあれば、