- PR -

プリンタの用紙サイズ取得について

1
投稿者投稿内容
さな
ベテラン
会議室デビュー日: 2004/07/27
投稿数: 59
お住まい・勤務地: 大阪・肥後橋
投稿日時: 2004-07-27 15:18
お世話になります。初投稿です。

C#にて、従来Windows API(?)にある、DeviceCapabilities()のDC_PAPERSで取得できる、プリンタで使用できる用紙サイズを取得する方法は無いのでしょうか?
System.Drawing.Printing.PrinterSettings.PaperSizeCollectionのKindで取得できるようなのですが、任意登録したユーザ用紙はすべて、Custumになってしまいます。

なんとか、.NET Frameworkのクラスライブラリで取得したいのですが。

ご存知の方がおられましたら、ご教授よろしくお願いします。
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-07-27 16:49
PaperSizeCollectionはPaperSizeインスタンスのコレクションなので
PaperSizeクラスのメンバを調べてみると

・Height
・Width
・PaperName

のパブリックプロパティがありますのでこれを参照してみては
どうでしょうか?

くわしい内容はMSDNを参照してください
googleで「PaperSize メンバ」で検索をかけると見つかります。
さな
ベテラン
会議室デビュー日: 2004/07/27
投稿数: 59
お住まい・勤務地: 大阪・肥後橋
投稿日時: 2004-07-27 17:13
ゆうじゅんさん、ご回答ありがとうございます。
が、私が取得したいのはあくまで、DeviceCapabilities()のDC_PAPERSで取得できる用紙サイズ(コード)なのです。
詳しい話をしますと、
あるパッケージのカスタマイズを行なっています。
そのパッケージ内では、帳票に対し、事前にプリンタと用紙を設定できます。
プリンタは、プリンタ名を文字列で持っているのですが、用紙はDeviceCapabilities()のDC_PAPERSで取得できるコードで持っています。
そのため、そのコードから用紙名を取得したいのです。
が、PaperSizeのKind値では、プリンタの独自用紙やユーザが登録した用紙はすべてCustomとして返ってきてしまいます。
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-07-28 11:05
調べてみましたが、コードからとなるとAPIを使用するしかないですね
DeviceCapabilitiesのDC_PAPERNAMESで対応する用紙名が取得できます
ので、もしコードからPaperSizeと紐付けするのであれば取得してきた
用紙名とPaperSizeクラスのPaperNameとマッチングするといいかも
しれません。
1

スキルアップ/キャリアアップ(JOB@IT)