Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

自動印刷について

javaを始めたばかりの超初心者です。

Flashのアクションスクリプトで印刷するアプリを作りましたが、連続で何回も印刷をしなければいけないのですが、その度にどうしても印刷ダイアログが出てしまいます出るのはいいのですが一々OKをクリックして印刷しなければなりません。
そこでJavaで自動的に印刷ダイアログのOKボタンを押すことが出来ないかと思っております。

それが出来ればほぼ自動で印刷できるのですが・・
そんな都合の良い事がJavaで出来るのでしょうか?

教えていただきたく投稿させていただきました、どうか宜しくご教授下さいます様お願いいたします。

9

回答

3433

閲覧

9件の回答

評価

0

印刷ダイアログのOKボタンのウィンドウハンドルを取得してSendMessage…というのをjniで作る。

どちらかといえば、印刷が一度で済むようなスクリプトを作ることを考えるほうがいいのでは?

評価

0

mioさんありがとうございます。

ホントに私はJavaについては何も分からない位の超超初心者で情けないのですが・・・

Flashでのスクリプトは一度計算してプリントして、そのデーターから又次のものの計算をしてプリントするといったもので、これを一発でプリントというのはできないのです、その都度計算に合せた画像も作っているので其々の画面が全く違うものなのです、それでその画像と計算結果を其々プリントして一つの結果となる・・というプログラムなのです。

人が話していたのを電車の中で聞いたことあるのですが印刷ダイアログのOKボタンを押させるのはそんなに難しくないと学生さんが話してましたが、私には至難の業だな・・と思っています何とかなるものなのでしょうか?

評価

0

>印刷ダイアログのOKボタンを押させるのはそんなに難しくない

これはJavaだと難しいですね。
でもWSHとかだと安全ではないですがSendKeysで簡単に出来ます。

Javaの話題と離れてしまうのでなんなんですが、簡単なサンプル作ってみました。

Set objShell = WScript.CreateObject("WScript.Shell")

dlgName = "印刷ダイアログタイトル"
Do
    ' 指定のウインドウタイトルがアクティブになるまで待つ
    Wscript.echo "ダイアログ待ち"
    Do Until objShell.AppActivate(dlgName)
        WScript.Sleep 500
    Loop

    ' ENTERキーを押す
    objShell.SendKeys "{ENTER}"
    Wscript.echo "ENTER送信"

    ' 指定のウインドウタイトルが無くなるまで待つ
    Do Until not objShell.AppActivate(dlgName)
        WScript.Sleep 500
    Loop
    Wscript.echo "無くなった"
Loop


>dlgName = "印刷ダイアログタイトル"
この部分に該当するダイアログのウインドウタイトルを設定すると、そのダイアログが起動したら勝手に、ENTERキーを押します。

ENTER1発でダメなときは、適当にキーストロークを並べます。

これをファイル名.vbsで保存して、コマンドプロンプトで
cscript ファイル名.vbs
とすると、起動します。

#でも勝手にENTERするなんで危なっかしいですよね。

評価

0

VBだとAppActivateなんて便利なものがありましたねえ。
すっかり忘れていました。

同じようにFindWindow()でダイアログのハンドルさえあれば、OKボタンのハンドルを取得しないでもいけるのかな。

評価

0

>これを一発でプリントというのはできないのです
「今のロジックで」できないだけで、根本的に考え直せばいいのではないですか?

>#でも勝手にENTERするなんで危なっかしいですよね。
自分で使うアプリはまだしも、他へ解放するものでは絶対やりませんね。

評価

0

>他へ解放するものでは絶対やりませんね。
そうですね、怖すぎます。

>これを一発でプリントというのはできないのです
Flashは使ったことが無いのですが、ページの概念は無いんですかね?
あれば、別々のページに書いといて全部一発でプリント出来そうですが。

評価

0

今仕事から帰ってきました。

mioさんありがとうございます、tamaさんありがとうございます。

プログラムまで書いていただきありがとうございます、後述にあぶないとありますがmioさんが書いてくださったものでは使えませんか・・・自分のPCだけで使うつもりなのですがだめでしょうか?。

>「今のロジックで」できないだけで、根本的に考え直せばいいのではないですか?

そうなんですが相当大きなプログラムで触るにも大変なので出来れば印刷ログを回避するだけで逃げたいのですが。

評価

0

>自分のPCだけで使うつもりなのですがだめでしょうか?。

なら、問題ないんじゃないでしょうか。

評価

0

>mioさんが書いてくださった
私じゃないですよ。

>自分のPCだけで使うつもりなのですがだめでしょうか?。
「自分で使うアプリはまだしも」と書きましたが…。
自分がローカルで使うものなら、自分で決めてください。
それがネットを通じたりしてほかの人になんらかの影響を与えるものならいろいろ考えねばなりませんが、
今回のケースではそれはなさそうだし。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。