EPSONのVP-1200ドッドインパクトプリンターに、縦3.5インチの連続用紙を使用して印字しようとしていますが、正常に改ページされず困っております。
コード側で
PrintDocument1.PrinterSettings.DefaultPageSettings.PaperSize
に、"連続紙 15x3 1/2inch" を設定し
setPaperSize = True
としても、3.5インチの用紙サイズで出力されません。
おそらく、プリンターのディフォルト用紙サイズのA4で出ているようです。
プリンターのプロパティ>詳細設定の中>「用紙/出力」の用紙サイズを"連続紙 15x3 1/2inch"に変更すれば正常に印字されます。
しかし上記プロパティーを変更してしまうと、違う仕組みの印字を行う際にプロパティを修正しなくてはならないので出来れば行いたくない。
上記プロパティの変更をせずに印字する方法をお教え下さい。
よろしくお願いいたします。
Dim pr As Printing.PrinterSettings
Dim ps As Printing.PaperSize
Dim pt As Printing.PaperSource
pr = New Printing.PrinterSettings
' プリンタ用紙設定
For Each ps In pr.PaperSizes
If ps.PaperName.IndexOf("連続紙 15x3 1/2inch") > -1 Then
pr.DefaultPageSettings.PaperSize = ps
Exit For
End If
Next
' プリンタ給紙設定
For Each pt In pr.PaperSources
If pt.SourceName.IndexOf("自動") > -1 Then
pr.DefaultPageSettings.PaperSource = pt
Exit For
End If
Next
● エラー処理はないですが、上記のコードでできませんか?
連続紙を使用できるドットインパクトプリンターがないので
未確認です。
以上。参考までに
早速の返答ありがとうございます。
コードを試してみましたが、残念ながらだめでした。
' プリンタ用紙設定
For Each ps In pr.PaperSizes
If ps.PaperName.IndexOf("連続紙 15x3 1/2inch") > -1 Then
の所で、3.5インチがTUREにならなくなったので
For Each ps In PrintDocument1.PrinterSettings.PaperSizes
If ps.PaperName.IndexOf("連続紙 15x3 1/2inch") > -1 Then
に変更してみました。 TRUEにはなるものの実行結果はだめでした。
プリンタ給紙設定も、自動でTUREになります。
できました!
オショウさんの情報を元にいろいろやったら出来ました。
コートを参考までに上げます
'ComboBox より希望のプリンターを選択
PrintDocument1.PrinterSettings.PrinterName = CbPrn.Text
Dim pr As Printing.PrinterSettings
Dim PS As Printing.PaperSize
pr = New Printing.PrinterSettings
pr.PrinterName = CbPrn.Text
For Each PS In pr.PaperSizes
If PS.PaperName.IndexOf("連続紙 15x3 1/2inch") > -1 Then '
pr.DefaultPageSettings.PaperSize = PS
Exit For
End If
Next
PrintDocument1.PrinterSettings = pr
よくわからないのですが、
PrintDocument1.PrinterSettings に直接PaperSizesプロパティ等を設定しても無視されたが、上記コードの用に一旦ワーク? に入れてから移せば思うように動きました。
ありがとうございました。
ツイート | ![]() |