VB.NETでどのプリンターでもB5の用紙で出力するようにしたいのですが
うまくいきません。
(ダイアログボックスは出さずに、プログラムで自動的にB5を選択、
という方法が分かりません)
以下の方法でうまくいくかと思いましたが、うまくいきませんでした。
Dim prnAny As New Printing.PrintDocument
prnAny.DefaultPageSettings.PaperSize = prnAny.PrinterSettings.PaperSizes(Printing.PaperKind.B5)
誰か知っていたら教えて頂けますでしょうか?
全く試してないですが、過去ログ検索『PrintDocument』で
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200310/03100151.txt
B5 に変えるだけではないの?
お早い返事ありがとうございますm(_ _)m
Printing.PaperKindの定数で単純に指定できないかと考えていたのですが、
コレクションを回すのが良いみたいですね。
リンク先のソースのIF文を以下のように変更して実行しました。
If PS.PaperName Like "*B5*" Then
ただ、一見うまくいってると思ったのですが(MsgBoxで以下の値を見ても
B5が選択されてるのですが)A4で出力されてしまいます(汗)
pDoc.PrinterSettings.DefaultPageSettings.PaperSize.PaperName()
謎です。。。.NETには全然詳しくないので私が何か勘違いをしてるのかも
しれません(汗) コレクションから探す方法で少しソースを変更して
みました。
Dim PS As System.Drawing.Printing.PaperSize
Dim papCnt As Integer = 0
For Each PS In pDoc.PrinterSettings.PaperSizes
If PS.PaperName Like "*B5*" Then
Exit For
End If
papCnt += 1
Next
pDoc.DefaultPageSettings.PaperSize = pDoc.PrinterSettings.PaperSizes(papCnt)
一応これでうまくいきました(^-^)
特攻隊長まるるう様、どうもありがとうございました。この件で半日は
悩んでました(苦笑)
ツイート | ![]() |