- 締切済み
印刷
VBで[印刷]というcommandを作成しました そこでご質問が このcommand(イベント発生)時にネットワーク(LAN)上のプリンタ \\SEV02\EPSON LP1700 に印刷(出力)したいのですが、どの様にプログラムを組めばいいのでしょうか? 宜しくお願い申し上げます
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- maruru01
- ベストアンサー率51% (1179/2272)
再びmaruru01です。 まず、何を出力したいのかが分かりません。 ・画面に表示されているフォームをそのままハードコピーする(PrintScreenのようなもの)。 ・テキストボックスの内容などを出力する(メモ帳の印刷のようなもの)。 ・任意の文字や図形、画像を任意の場所(用紙内の)へ出力する。 ・すでにあるファイルをそのファイルに関連付けられたアプリケーションで出力する(ファイルを右クリックして表示されるポップアップメニューにある[印刷]と同じ)。 などです。 それらによってやり方は変わってきます。 それから、どの程度分からないのでしょうか。 ・Printerオブジェクトによる印刷は分かりますか。 ・Win32API関数の使用方法は分かりますか。 現状どの程度のコードが書けているのでしょうか。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 現在、通常使うプリンタに設定されているプリンタに出力する場合は、Printerオブジェクトの各メソッド(PrintやLine)で記述すればOKですね。 一方、通常使うプリンタに設定されていないプリンタに出力する場合は、いったんそのプリンタを通常使うプリンタに設定してからPrinterオブジェクトを使用するのが簡単です。 通常使うプリンタの変更は、Win32APIのSetDefaultPrinter関数を使用します。 以下のページにサンプルがあります。 http://www.vbvbvb.com/jp/gtips/0351/gSetDefaultPrinter.html ちなみにプリンタ名は、 Printer.DeviceName で取得出来るので、変更前の元のプリンタ名を変数にでも保持しておけば、出力後に元に戻すことが出来ます。 もし、通常使うプリンタの変更なしで別のプリンタに出力したいなら、Win32API関数を駆使しないと難しいです。(使用するAPI関数は、CreateDC、DeleteDC、StartDoc、EndDoc、TextOut他多数) あと、何かファイルを(通常使うプリンタへ)出力するなら、Win32APIのShellExecute関数を使用します。以下にサンプルがあります。この場合は、ファイルを右クリックして表示されるポップアップメニューの「印刷」を実行するのと同じ動作です。 http://www.vbvbvb.com/jp/gtips/0951/gShellExecuteSwShowNormalOpenPrint.html
補足
どうも有難うございます 早速拝見させていただいたのですが、レベルが高度でよく分かりませんでした。 もし、宜しければ具体的にどのように記述すればいいのか、教えて頂けないでしょうか? 宜しくお願い申し上げます