- PR -

印刷サイズの設定

1
投稿者投稿内容
tkinu
会議室デビュー日: 2004/07/16
投稿数: 16
投稿日時: 2005-12-20 08:47
いつもお世話になっています。

印刷時にファイル名をもとにA1〜A4の用紙サイズを設定し印刷したい
と思っているのですが、どのようにすればいいのでしょうか?

System.Drawing.Printingあたりで設定できるのだと思うのですが、
うまくできません・・・。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-12-20 09:14
たとえば、PrintDocument のインスタンスにある DefaultPageSettings.PaperSize ですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
tkinu
会議室デビュー日: 2004/07/16
投稿数: 16
投稿日時: 2005-12-20 11:06
じゃんぬねっとさんお世話になります。

すいません。質問少し間違っておりました。
印刷の設定には用紙の定数が必要なようで、
A3=8
A4=9
というところまではわかりました。
しかしA1・A2についてはプリンタ特有の定数があるようで
その取得方法についてご存知ないでしょうか?

ちなみにA3・A4についてはPaperSizes.Kind.GetHashCodeで取得できました。
この方法でA1・A2を取得すると0という値が返ってきて、サイズの
特定にいたりませんでした。


じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-12-20 12:14
引用:

tkinuさんの書き込み (2005-12-20 11:06) より:

すいません。質問少し間違っておりました。
印刷の設定には用紙の定数が必要なようで、
A3=8
A4=9
というところまではわかりました。


マジック ナンバーを使用するのは止めましょう。
System.Drawing.Printing.PaperKind 列挙体を使いましょう。

引用:

しかしA1・A2についてはプリンタ特有の定数があるようで
その取得方法についてご存知ないでしょうか?

ちなみにA3・A4についてはPaperSizes.Kind.GetHashCodeで取得できました。
この方法でA1・A2を取得すると0という値が返ってきて、サイズの
特定にいたりませんでした。


PrinterSettings のインスタンスから PaperSizes プロパティの中身を列挙して、
A1 と A2 が存在しているかどうか確認してみてください。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
tkinu
会議室デビュー日: 2004/07/16
投稿数: 16
投稿日時: 2005-12-20 14:14
じゃんぬねっとさんありがとうございます!

"0"という数値はカスタムサイズの意味のようです。
この時のサイズの設定は
HeightとWidthで設定されていました。これを使用することにより
うまく設定できました。

ところでじゃんぬねっとさんの言う『マジック ナンバー』は
何のことでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-12-20 14:24
引用:

tkinuさんの書き込み (2005-12-20 14:14) より:

ところでじゃんぬねっとさんの言う『マジック ナンバー』は
何のことでしょうか?


たとえば、あるメソッドの戻り値が -1 の時はエラーだとします。
この -1 は特別な意味を持つ数字です。
これをマジック ナンバーと言います。

これが問題になる理由は 2 点。
  • 意味を持つわりに、知らない人から見れば -1 という情報しかない
  • この値を変更する場合、複数個所すべて修正しなければならない
これらを解決するには、列挙体や定数を使って "名前付き" の定数を使います。

同様に「マジック ストリング」というものもあります。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

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