プリンター用紙の指定

解決


はや  2007-06-12 21:37:45  No: 143628

EPSONのVP-1200ドッドインパクトプリンターに、縦3.5インチの連続用紙を使用して印字しようとしていますが、正常に改ページされず困っております。

コード側で
PrintDocument1.PrinterSettings.DefaultPageSettings.PaperSize
に、"連続紙 15x3 1/2inch"  を設定し
setPaperSize = True
としても、3.5インチの用紙サイズで出力されません。
おそらく、プリンターのディフォルト用紙サイズのA4で出ているようです。

プリンターのプロパティ>詳細設定の中>「用紙/出力」の用紙サイズを"連続紙 15x3 1/2inch"に変更すれば正常に印字されます。
しかし上記プロパティーを変更してしまうと、違う仕組みの印字を行う際にプロパティを修正しなくてはならないので出来れば行いたくない。

上記プロパティの変更をせずに印字する方法をお教え下さい。

よろしくお願いいたします。


オショウ  2007-06-13 04:02:08  No: 143629

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

●  エラー処理はないですが、上記のコードでできませんか?
    連続紙を使用できるドットインパクトプリンターがないので
    未確認です。

以上。参考までに


はや  2007-06-13 18:40:43  No: 143630

早速の返答ありがとうございます。

コードを試してみましたが、残念ながらだめでした。

' プリンタ用紙設定
    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になります。


はや  2007-06-14 01:58:16  No: 143631

できました!

オショウさんの情報を元にいろいろやったら出来ました。
コートを参考までに上げます
'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プロパティ等を設定しても無視されたが、上記コードの用に一旦ワーク?  に入れてから移せば思うように動きました。  

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


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加