プロが教える店舗&オフィスのセキュリティ対策術

VB.NET2003+ActiveReports を使用し、
帳票(伝票)を複数のプリンタから振り分けて印刷しようとしています。

帳票はB5サイズの専用用紙で、プリンタのどの部分に給紙されているかは
プリンタ毎に異なるので、動的にプリンタと用紙トレイを変更しようとしています。

現在、テストに使用しているプリンタはA4の用紙トレイ(Upper)とB5の手差し(Middle)が設定されており、


Dim rpt As New rptLayout01

rpt.Document.Printer.PrinterName = 指定したプリンタ名
rpt.PageSettings.PaperSource = 指定した用紙トレイ


と記述しているのですが、A4の用紙トレイを指定しても、
B5の手差しから印刷されてしまいます。

A4のトレイを指定したときに、プリンタ側で「用紙サイズエラー」となれば納得できるのですが、
そういったメッセージも表示されずそのまま印刷されてしまいます。


これは用紙サイズが一致しないとき、プリンタ側で親切に自動選択をしてくれているのでしょうか?

ご存じの方、お知恵をお貸しください。
テストで使用しているプリンターは、EPSON LP-9400 です。

A 回答 (1件)

 用紙サイズの設定とトレイの設定が矛盾すると、Active Reportsがプリンタのトレイ設定を(「自動選択」に)戻します。

正確には.Net Frameworkのプリンタコンポーネントが。この辺は、印刷をかける時に印刷設定ダイアログを出してみれば、トレイの設定がクリアされている事が確認できるでしょう。

 で、とにかく正しく動けば良いという場合、もっとも簡単な回避策は、プリンタエントリを2つ作る事。
 Epson LP-9400のエントリを2つ作り、プリンタのプロパティの詳細設定→標準の設定にて用紙サイズと向きを設定し、プログラムからはプリンタのエントリ名をrpt.Document.Printer.PrinterNameに設定する。
 後、レポートのデザインでレポートのプロパティだったか何だったかで、用紙サイズを「デフォルトプリンタ」にして置くこと。ここを「B5」とか「12×4インチ」など固定にして置くと、トレイの設定と矛盾して初期設定に戻りまふ。
    • good
    • 2
この回答へのお礼

回答ありがとうございます。
今回用のプリンタエントリを追加することで
確認することができました。

本番用の環境(プリンタ)で確認出来れば良かったのですが、なかなかそういうわけにもいかず・・・。

助かりました^^

お礼日時:2006/03/01 10:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています