人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VB.NETでWindowsアプリケーションを開発しています。その中の帳票印刷機能(ActiveReports)でプリンタのトレイ指定を行っているのですが、RICOHのある機種でうまくいきません。

以下のようにトレイ1、2、3の値が.NETのPaperSourceKindの Custom (規格外の意味?)という値になってしまっています。Customを指定して印刷してもプリンタ側で標準に設定しているトレイからしか出力されません。トレイ1、トレイ2、トレイ3から出し分けしたい場合は、どのようにすれば良いでしょうか?

自動トレイ選択:FormSource
ページ範囲設定にしたがう:Custom
トレイ1:Custom
トレイ2:Custom
トレイ3:Custom

ちなみに以下の様な状態のプリンタの場合、意図したとおりに出力できます。
(Upperと指定すればトレイ1から、Middleと指定すればトレイ2から出力される)

自動トレイ選択:AutomaticFeed
トレイ1:Upper
トレイ2:Middle
手差しトレイ(マルチ):Manual

※上記の情報は、PrintDocument.PrinterSettings.PaperSources でそれぞれのプリンタから取得した値です。

●質問者: はてな初心者
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● cx20
●1000ポイント ベストアンサー

> 以下のようにトレイ1、2、3の値が.NETのPaperSourceKindの Custom (規格外の意味?)

PaperSourceKind の Custom は、プリンター(ドライバ)固有の給紙方法であることを示しています。
(実際は、DEVMODE 構造体の dmDefaultSource が DMBIN_USER(256)を超える場合に、Custom を返却するようです。)

■ PaperSource.cs source code in C# .NET
http://reflector.webtropy.com/default.aspx/DotNET/DotNET/8@0/untmp/whidbey/REDBITS/ndp/fx/src/CommonUI/System/Drawing/Printing/PaperSource@cs/1/PaperSource@cs

また、Custom の場合の実際の値(256以上の値)については、PaperSource.RawKind を参照することで取得することが可能なようです。

■ PaperSource.RawKind プロパティ
http://msdn.microsoft.com/ja-jp/library/system.drawing.printing.papersource.rawkind.aspx

ただし、プリンター(ドライバ)固有の給紙方法については、環境に依存する為(同じ値でも環境によって異なる意味となる可能性がある為)、プリンタの登録自体をトレイ毎に作成して、印刷時にプリンタを切り替えるというやりかたの方が無難なようです。

<参考情報>
■ VB.NETでプリンタのプロパティの設定変更 - QA@IT
http://qa.atmarkit.co.jp/q/739


はてな初心者さんのコメント
cx20様、情報をありがとうございました。こちらで試してみようと思います。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ