• ベストアンサー

PHPからVBで作った文書印刷処理(EXE)を起動し、ネットワークプリンタへ印刷したい。

PHPからVBで作った文書印刷処理(EXE)を起動し、ネットワークプリンタへ印刷したいのですが、マイクロソフトドキュメントライターへ出力されてしまいます。 しかし、コンソールから直接EXEを起動するとちゃんとネットワークプリンタへ出力されます。

  • PHP
  • 回答数4
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • doran357
  • ベストアンサー率24% (23/93)
回答No.2

Apacheはどのユーザ権限で動くサービスになっている? コンソールから実行したときと同じユーザアカウントで動くサービスになっているか? ユーザが違うならデフォルトプリンタも違うだろうから当然質問者のような環境の結果になっても不思議ないけどどうなっている?

nakasaan
質問者

補足

ご回答いただきありがとうございます。 doran357さんから頂いたご意見を参考に以下の手順を行いました。しかし残念ながら現在も印刷ができない状況です。 もし、以下の手順で何か間違っている点がありましたらご指摘をお願いいたします。 1.[コントロールパネル]-[管理ツール]-[サービス]-[Apache2.2]-[ログオン]タブを開く。 2.ログオンの種類として「ローカル システム アカウント」が選択されていたため、「アカウント」を選択し、現在ログインしているPCのアカウントとパスワードを指定。 3.Apacheサービスを再起動。 4.タスクマネージャを開いた状態で、Web画面上から印刷を実行。 これにより、print.exeが設定したユーザー名で実行されていることが確認できました。 (※上記手順を実施するまでは、print.exeが「SYSTEM」というユーザーで実行されていました。) この状態でも残念ながらプリンタへの印刷はされない状況です。 上記手順での誤りやそれ以外で必要な設定等ございましたらご教授しただければ幸いです。 よろしくお願いいたします。

その他の回答 (3)

  • doran357
  • ベストアンサー率24% (23/93)
回答No.4

>この状態でも残念ながらプリンタへの印刷はされない状況です。 印刷されないは? マイクロソフトドキュメントライターに出力されると言うことか?

nakasaan
質問者

お礼

今回のご質問させていただいた内容に関しまして、新たにネットワークプリンタを購入することでネットワーク経由での印刷ができることが確認できました。 印刷できなかった原因として、Windows 2003 Serverに接続したプリンタに対して印刷しようとしていたことが原因のようです。 もしかすると、Windows 2003 Serverの設定を行うことでも、印刷ができるようになるかも知れませんが、今回はネットワークプリンタに印刷することが目的であったため本件は解決とさせていただきます。 ご回答いただいた皆様ありがとうございました。

nakasaan
質問者

補足

説明不足となってしまい申し訳ありませんでした。 ドキュメントライターへの出力はされなくなりました。 また、一つ気がついたことなのですが、PHPからprint.exeを実行した際に、 プリンタの状態を確認したところ「アクセス拒否-接続できません」と表示されました。 一応プリンタへのアクションは行われているようなのですが、印刷までには至らない状況です。 これはprint.exe内でプリンタへの絶対名を指定した場合と、指定しなかった場合で共に確認されました。

noname#111181
noname#111181
回答No.3

ANo.2さんが回答しているように、おそらく、直接print.exeを起動したときのアカウントと、Apacheが動いているアカウントが違うのだと思います。 対策ですが、印字を「通常のプリンタ」に指定するのではなく、ネットワークプリンタの絶対名(ネットワークパスを含む)で指定するようにprint.exeを改良してください。PHPの方では対処しようがありませんので。

nakasaan
質問者

補足

ご回答いただきありがとうございます。 i80286さんから頂きましたご意見を参考に、print.exeにネットワークプリンタの絶対名を指定してみました。 しかし、現在も印刷ができない状態です。 ユーザーアカウントに関しましてはNo.2のdoran357さんの補足として書かせていただいたとおりです。 それと、私のほうで提供すべき情報で一部抜けてしまっていたことで申し訳ないのですが、 プリンタは一般的なイーサネットで接続できるものを使用しておらず、 Windows 2003 ServerがインストールされたPCにパラレルケーブルで接続されたプリンタをLAN経由で共有し使用している状態です。 このような環境が印刷できない原因にもなりうるのでしょうか?

noname#111181
noname#111181
回答No.1

その文書印刷処理(EXE)には、プリンタを指定するオプションスイッチがあるのではありませんか? コマンドライン(コンソール)から指定する場合の命令をお知らせください。

nakasaan
質問者

お礼

早速のお返事を頂き誠にありがとうございます。 只今担当者が不在です。 本日の夜になってしまいますが、改めて担当者から連絡をさせます。 誠に申し訳ありません。

nakasaan
質問者

補足

連絡が遅くなってしまい大変申し訳ありません。 本質問の詳細を以下に記述させていただきます。 現在、あるシステム構築のためHTML(JavaScript)、PHPを使用したWEBアプリケーションの開発を行っております。 このシステムは、LAN上で使用することを目的としているため、外部のレンタルサーバー等は利用せず、 ApacheをインストールしたPCを用意し、自前のWEBサーバーを構築しています。 ここで、いま行いたい事なのですが、クライアント側のブラウザに表示させた「印刷」ボタンを押下することで LAN内のネットワークプリンタに帳票を印刷させたいのです。 この帳票は、印刷するべき雛型が決まっており、現在はExcelで作成されています。 PHPから直接このExcelファイルを操作し、帳票として印刷できれば最良なのですが、 その方法が見つからなかったため、苦肉の策としてVBでこのExcelファイルを操作、印刷するprint.exeを作成しました。 このprint.exeを起動する際の手順は以下のとおりです。 1. PHPにより帳票に必要なデータをcsv形式でファイル出力。 2. PHPからprint.exeを起動。 3. print.exeがcsvファイルと上記Excelをもとに帳票出力(…させたい)。 このとき、PHPからprint.exeが起動できたことは確認できました。 しかし、印刷の出力先が実際のプリンタではなく「Microsoft XPS Document Writer」への出力となってしまいます。 ※このときに作成させるXPSファイルの内容はただしく表示されています。 また、実際に印刷させたいプリンタは「通常使うプリンタ」として設定してあり、 print.exeを単体で起動させた場合は、csvファイルの内容からネットワークプリンタに印刷されることが確認できています。 PHPからprint.exeを起動させた場合のみ「Microsoft XPS Document Writer」で印刷されてしまうという状況です。 大変長い説明となってしまい申し訳ありません。 もし、このような現象についてなにかご存知でしたらご教授いただければ幸いです。 よろしくお願いいたします。 【サーバー環境】 Windows XP Professional Apache 2.2 PHP 5.2.11 【クライアント環境】 Windows XP Professional FireFox 3.6

関連するQ&A

  • VBでのプリンタのテスト印刷処理について

    プリンタを接続したときに、プリンタのテスト印刷が出力されますが、VBの処理のなかで処理させたいのですが、テスト印刷と同じように印字させたいのですが、 プリンタの名称を取得はできたのですが、それ以外に情報を印刷したいのですが、方法がわかりません。よろしくお願いします。

  • 突然ネットワークプリンタでの印刷ができなくなりました。

    職場のプリンタのことでお伺いします。 PC約10台とプリンタ2台のネットワークです。これまで特にトラブルはなかったのですが、一つのプリンタが突然印刷不可能になりました。 印刷しようとすると、「このドキュメントの印刷に失敗しました」というメッセージが表示されます。 LANケーブルの交換、再起動、いずれも奏功しませんでした。 トラブルシューティングでは「pingを検出できませんでした」というような結果でした。 もう一つのプリンタからは印刷可能で、全く問題ありません。 ネットワーク上の他のPCでも同じ結果です。 トラブルが起こる直前にネットワークの設定を変えたり、セキュリティソフトをインストールしたというようなこともありません。 以上のような状態です。 なにか思い当たる事項がおありでしたら、ご指導下されば嬉しいです。 どうぞよろしくお願い申し上げます。

  • ネットワークプリンタへの接続を確認する方法

     社内でネットワークパソコンから、独自会計ソフトを使用します。その際、ネットワークプリンタから帳票が出力されます。  問題は、ネットワークプリンタにログインしてから、会計ソフトを起動させる必要がありますが、社内のパソコンのため、パソコン起動時に自動的にネットワークプリンタサーバへログインする設定にはできません。  WSH(VB)かバッチファイルかで、ネットワークプリンタへの接続状況を調べて、接続していれば会計ソフトを起動し、接続していなければメッセージを表示しそのまま終了する処理を行いたいのです。  よろしくお願いします。

  • VBにてEXE作成

    VBにてとあるシステムを開発しました。 SETUP.EXEを作成して遠隔地に配布したいのです。が SETUP.EXEを起動してインストールはできるのですが 印刷実行時にエラーが出てしまいます。 VBから実行は出力できます。 ディストリビューション ウィザードの使用方法が 悪いのでしょうか。 OS :Windows2000 TOOL:VB6.0 SP5,Spread3.0,ImputMan6.5J DB :ORACLE8.05

  • ネットワークプリンタで印刷できません

    職場で1台のプリンタを共有して印刷していますが、そのうちの1台のPCのワード印刷ができません。理由は、ワードの印刷命令の段階で既に1つの印刷中の文書があることになっていて、すべてのPCのドキュメントを削除し、ドキュメントのウィンドウを空にしても、そのPCのドキュメントのウィンドウは何もないのですが、ワードの印刷命令で通常はアイドリング状態なのが、1つの印刷中のままとなっています。 何か、その印刷命令を消す方法や解決策があれば教えてください。

  • ネットワークプリンタから印刷できないのですが

    Windowsのノートパソコンから ネットワークプリンタで印刷できなくなりました。 (ノートパソコン) Windows XP Professional Version 2002 Service Pack 3 (ネットワークプリンタ) RICOH imagio MP C2500 (LANケーブルでつないでます) ワード、エクセル、メモ帳、Web画面 すべて印刷できないです。 印刷すると右下に ●●●のドキュメントが保留状態です    ↓(30秒ぐらいして) このドキュメントの印刷に失敗しました。 と出ます。 以下確認したことです。 ・PCの再起動、プリンタのケーブル抜き差し ・他のPC(マックプロ)からは印刷できる ・プリンタの共有はされてる(手のマークと黒丸チェックついてます) ・ポートの確認 ・ドライバを入れ直しました ・たまっている印刷データは無いです ・ノートンの設定 http://jp.norton.com/support/kb/web_view.jsp?wv_type=public_web&docurl=20101103213759JP&ln=ja_JP プリンタのヘルプのトラブルシューティングで進めていって 「ネットワークは正しく動作していますか?」の項目で 調査ボタンを押すと 「いいえ、ネットワーク接続は動作していません。 ネットワーク問題を解決してから、もう一度印刷してみます。」 の項目にチェックが入り、 トラブルシューティングでは、プリントサーバーに ping(接続の検出)を実行できませんでした。 これが問題の原因である可能性があります。 ネットワークが正しく設定されていることと、 ネットワークに接続していることを確認してください。 と出ます。 ↑おそらくこれが原因だと思うのですが 解決策がわからないのでご教授いただければと思います。 ちなみにインターネットにはつながっています。 足りない情報等あればご指摘いただければと思います。 よろしくお願いいたします。

  • プリンタ(ネットワーク)で印刷できなくなってしまいました。

    EPSON LP-S1100 を ネットワーク接続してプリンタを使っています。 以前は全く問題なく印刷できていたんですが、 ある日、印刷を「一時停止」(印刷キューから)してから 調子悪くなってしまいました。 印刷キューは、いつ開いても「一時停止」と表示されています。 ドキュメントを右クリックして「再印刷」してみますが、 再開されず、印刷できません。依然として、印刷キューには「一時停止」と表示されています。 「シャットダウン」→「再起動」しても改善されません。 どうしたら解決できるでしょうか? ヘルプやトラブルシューティングを読んでみましたが、自分には解決策がわかりませんでした。どうか知恵を貸してください。よろしくお願いします。

  • おかしいのはネットワーク?プリンター?

    会社のネットワークプリンター(カラー)から出力したり、しなかったりします。 ちなみに同じネットワークにある白黒プリンターからは出力します。(まったく問題なし) 状況は以下のようなのですが、どの部分がおかしいのか可能性のあることを教えてください。 ・同じネットワーク内(完全に同じセグメントです)の白黒プリンターからは問題なく出力 ・数日前同様に出力しなくなったときはプリンターの再起動とパソコンの再起動で出力された ・数日後にまったく出力しなくなった(再起動してもだめ) ・出力しないときにpingを実行→OK ・出力しないときにブラウザでプリンターのIPを入力し、設定の確認や設定の変更もできる ・数日利用せずに久しぶりに試してみたら問題なく出力できた ・ちなみに複数台のパソコンで同様の現象 これはプリンターの調子が悪いのでしょうか? それともほかの部分でしょうか? サポートセンターに電話したら、ネットワークの不具合の可能性があるといわれましたが、ネットワーク管理者は出力しない時にpingやブラウザからの設定もできているので、ネットワークの不具合の可能性はないのではないかと言っています。 プリンターの調子が悪いのであれば、購入しようと思うのですが、プリンターのせいでないのであれば、買いたくありません。 何か設定で見るとよいところなどありませんか。 とりあえず怪しいところを知りたいのでお願いいたします。

  • VBでフォームを印刷させたいと思っています。

    VBでフォームを印刷させたいと思っています。 PCの動作確認用にVBで作成したフォームを、PC内に設定されているプリンタ全てから印刷させるようなプログラムを組んでいます。 現状ではprintformで印刷しているのですが、これだと通常使うプリンタで印刷されてしまうので印刷処理前に通常使うプリンタを変更してから印刷処理しています。 ただ、実際に作業で利用してみたところ通常使うプリンタが変更できずに印刷処理できないことがありました。 そこで、通常使うプリンタではなく指定したプリンタにフォームを印刷させたいと思いました。 なにかよいサンプルやソースをご存知であれば教えていただけると助かります。 利用しているのはVB6です。 よろしくお願いいたします。

  • VB2008(印刷ダイアログ)上でExcel印刷

    現在VB2008でExcel操作(COM参照使用)をしているのですが、 Excelシートを印刷する際にVB2008にある印刷ダイアログにて プリンタを設定後そのシートを印刷することは可能ですか? 現在はExcelVBAの起動時マクロでプリンタ設定しているのですがプリンタの中にはネットワークプリンタもあり、しばしばプリンタ名(後ろのNe:○○の番号が可変)が変わりそのたびにコードを書き変えています また複数台プリンタがあり通常使うプリンタがラベルプリンタなのでA4紙データを印刷するととんでもないことになるので(汗) そのためVB2008上でダイアログからプリンタを選んで印刷できればいいなと考えています ご教授お願いします。