- - PR -
プリンターの用紙サイズ設定方法について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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の値は異なるものなのでしょうか? また、名刺サイズ・カードサイズの場合はどうでしょうか? よろしくお願いします。 | ||||
|
投稿日時: 2007-11-12 14:38
PaperNameはメーカーによって異なるでしょう。 表記一つとっても【封筒 長形3号】・【長形3号】と異なってたりしますので、 プログラム中で名前指定は御勧め出来ません。 (最悪、機種により異なる可能性もなくは無いです。そこはメーカーに確認する 以外ありません。) 今のところPaperSizeで設定するのが無難ですね。 プログラムでL判のサイズが欲しいのであれば、少なくとも設定名(L判)から PeperSizeが取得できるので、マイクロソフトの下記のページを参照しプログラムを 作成されるとよいかと思います。 http://msdn2.microsoft.com/ja-jp/library/system.drawing.printing.printersettings.papersizes(VS.80).aspx | ||||
|
投稿日時: 2007-11-14 14:06
上総さん、ご回答ありがとうございます。
ここで言う設定名(L判)とは結局PaperNameのことですよね? 自分のプリンターのL判におけるPaperSize.Kindはカスタムとなっていました。 PaperSizeをPaperName等から求めるのではなく、 カスタムでページサイズを独自に指定してやるのが安全策のようです。 ありがとうございました。 |
1