- 締切済み
スプーラを使わずに印刷する
現在、プリンタの設定を「印刷ドキュメントをスプールし、プログラムの印刷処理をに行う。」とした上で、以下の流れでAPI関数を使用して、ドットインパクトプリンタへの出力を行っています。 OpenPrinter StartDocPrinter StartPagePrinter WritePrinter EndPagePrinter EndDocPrinter ClosePrinter しかし、「スプーラを使わずにやってみて」といわれました。 上記のAPIを見ると、どれも「印刷スプーラに通知する」とあります。 ということは、スプーラを使わ無い場合は、使用できないということでしょうか? その場合、どのようなプログラムにすればよいのでしょうか? ためしに、プリンタの設定だけを「プリンタに直接印刷データを送る」にして、プログラムはそのままで印刷してみたら、プリンタの状態が正常の場合は、印字できたのですが、電源を落としたりすると、「EndDocPrinter」のところで止まってしまいました。 以上、よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- taka_tetsu
- ベストアンサー率65% (1020/1553)
>確認いたしましたが、APIはどれもエラーは返していませんでした。 では、 >電源を落としたりすると、「EndDocPrinter」のところで止まってしまいました。 この状態、何時までこのままでした? タイムアウトになるまでえらい時間がかかっているなんて事は無いですか? 1、2分じゃなくてもっと待てばEndDocPrinterがエラーを返しませんか?
- taka_tetsu
- ベストアンサー率65% (1020/1553)
>電源を落としたりすると、「EndDocPrinter」のところで止まってしまいました。 その前でAPIがエラーを返してませんでした?
お礼
確認いたしましたが、APIはどれもエラーは返していませんでした。 「EndDocPrinter」のところで止まったときに、プリンタフォルダのエラーダイアログで、再印刷かキャンセルかを聞かれるので、キャンセルすると、「EndDocPrinter」以降に進みます。 このとき、「EndDocPrinter」も正常を返していました。 よろしくお願いいたします。
お礼
お礼が大変遅くなり申し訳ありません。 プリンタフォルダが出すエラーメッセージで「キャンセル」をしない限り、おわることが出来ませんでした。 ですので、結局、処理を「キャンセル」してしまうのですが、その時、EndDocPrinterはエラーを返していませんでした。 そもそも、プリンタフォルダが出すエラーダイアログは出したくないのですが・・・