- PR -

プリンターの用紙サイズ設定方法について

1
投稿者投稿内容
Hidering
常連さん
会議室デビュー日: 2007/05/22
投稿数: 33
投稿日時: 2007-11-12 13:52
お世話になります。

印刷する時にプリンターの用紙サイズを設定したいのですが、
A4サイズの場合、PrintDocumentのPrintPageプロシージャで
以下のように設定をしています。

For Each psize In PrintDocument1.PrinterSettings.PaperSizes
If psize.Kind = Printing.PaperKind.A4 Then
e.PageSettings.PaperSize = psize
Exit For
End If
Next

これは問題ないのですが、L判の場合
e.PageSettings.PaperSize
にL判に等価な設定がないため

For Each psize In PrintDocument1.PrinterSettings.PaperSizes
If psize.PaperName.Equals("L判") Then
e.PageSettings.PaperSize = psize
Exit For
End If
Next

とPaperNameプロパティを判定しているのですが、この場合
プリンターによってL判を指すPaperNameの値が違うのではないかと
懸念しています。
メーカーや機種によってPaperNameの値は異なるものなのでしょうか?
また、名刺サイズ・カードサイズの場合はどうでしょうか?

よろしくお願いします。
上総
大ベテラン
会議室デビュー日: 2006/06/22
投稿数: 107
投稿日時: 2007-11-12 14:38
引用:

プリンターによってL判を指すPaperNameの値が違うのではないかと
懸念しています。
メーカーや機種によってPaperNameの値は異なるものなのでしょうか?
また、名刺サイズ・カードサイズの場合はどうでしょうか?



PaperNameはメーカーによって異なるでしょう。
表記一つとっても【封筒 長形3号】・【長形3号】と異なってたりしますので、
プログラム中で名前指定は御勧め出来ません。
(最悪、機種により異なる可能性もなくは無いです。そこはメーカーに確認する
 以外ありません。)

今のところPaperSizeで設定するのが無難ですね。
プログラムでL判のサイズが欲しいのであれば、少なくとも設定名(L判)から
PeperSizeが取得できるので、マイクロソフトの下記のページを参照しプログラムを
作成されるとよいかと思います。

http://msdn2.microsoft.com/ja-jp/library/system.drawing.printing.printersettings.papersizes(VS.80).aspx
Hidering
常連さん
会議室デビュー日: 2007/05/22
投稿数: 33
投稿日時: 2007-11-14 14:06
上総さん、ご回答ありがとうございます。

引用:
今のところPaperSizeで設定するのが無難ですね。
プログラムでL判のサイズが欲しいのであれば、少なくとも設定名(L判)から
PeperSizeが取得できるので、マイクロソフトの下記のページを参照しプログラムを
作成されるとよいかと思います。


ここで言う設定名(L判)とは結局PaperNameのことですよね?

自分のプリンターのL判におけるPaperSize.Kindはカスタムとなっていました。
PaperSizeをPaperName等から求めるのではなく、
カスタムでページサイズを独自に指定してやるのが安全策のようです。

ありがとうございました。
1

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