玄関へお回り下さい。
用紙サイズの取得及び設定・印刷部数・印刷方向の設定 (4個)          (SNo.057)

1.用紙サイズを取得・設定する(直接プログラムで指定)
2.用紙方向横向き/縦向きで印刷
3.印刷部数を設定する
使用コントロール Button1 〜 Button3  PrintDocument1 PrintPreviewDialog1
その他条件 WindowsXP(Vista) Visual Basic 2005(VB2008)
 
1.印刷用紙サイズの取得及び設定
 
Private Sub Button1_Click(ByVal sender As System.Object, _
                         
ByVal e As System.EventArgs) Handles Button1.Click
'用紙サイズを指定する
    Dim pPaperSz As System.Drawing.Printing.PaperKind
    pPaperSz = Printing.PaperKind.JapanesePostcard     
'はがきサイズの定数
'    pPaperSz = Printing.PaperKind.A4                   'A4 サイズの定数
   
Dim pkSize As System.Drawing.Printing.PaperSize
   
Dim setPaperSize As Boolean = False
  
'★ サポートされている用紙サイズの一覧を取得
   
For Each pkSize In PrintDocument1.PrinterSettings.PaperSizes
        '指定の用紙サイズがサポートされているか
       
If pkSize.Kind = pPaperSz Then
            '指定の用紙サイズが見つかったら用紙サイズを設定する
            PrintDocument1.DefaultPageSettings.PaperSize = pkSize
            setPaperSize = 
True     '設定完了のフラグ
       
End If
   
Next

'確認のためにプレビューを表示
   
If setPaperSize Then    '設定が無事できたら
        PrintPreviewDialog1.Document = PrintDocument1
        PrintPreviewDialog1.Size = 
New Size(800, 900)
        PrintPreviewDialog1.PrintPreviewControl.Zoom = 1.0
        PrintPreviewDialog1.ShowDialog()
   
Else
        MessageBox.Show("指定の用紙サイズが設定できませんでした。")
   
End If
End Sub

2.印刷する用紙方向の設定
 
Private Sub Button2_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button2.Click
'用紙方向横向き/縦向きで印刷
    PrintDocument1.DefaultPageSettings.Landscape = Not _
                                PrintDocument1.DefaultPageSettings.Landscape
    'PrintDocument1.DefaultPageSettings.Landscape = True     '横向き


'確認のためにプレビューを表示
    PrintPreviewDialog1.Document = PrintDocument1
    PrintPreviewDialog1.Size = New Size(800, 900)
    PrintPreviewDialog1.PrintPreviewControl.Zoom = 1.0
    PrintPreviewDialog1.ShowDialog()
End Sub

3.印刷部数の設定
 
Private Sub Button3_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button3.Click
'印刷部数を2部印刷
    PrintDocument1.PrinterSettings.Copies = 2

'確認のためにプレビューを表示(表示では確認できませんので印刷を)
    PrintPreviewDialog1.Document = PrintDocument1
    PrintPreviewDialog1.Size = New Size(800, 900)
    PrintPreviewDialog1.PrintPreviewControl.Zoom = 1.0
    PrintPreviewDialog1.ShowDialog()
End Sub

上記でプレビュー確認される場合は下記をご利用下さい。

Private
 Sub PrintDocument1_PrintPage(ByVal sender As ObjectByVal e As System. _
            Drawing.Printing.PrintPageEventArgs) 
Handles PrintDocument1.PrintPage
'印刷位置をmm単位で指定しての簡単なテキストの印刷
    'テキストボックスの内容を印刷
   
Dim g As Graphics = e.Graphics
    'ミリメートルを長さの単位に指定します。
    g.PageUnit = GraphicsUnit.Millimeter
'テキストボックスの内容を印刷する場合
    g.DrawString(TextBox1.Text, _
               
New Font("MS Pゴシック", 12), Brushes.Black, 0, 0)
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, _
                       
ByVal e As System.EventArgs) Handles MyBase.Load
'テキストファイルを丸ごと読み込みテキストボックスに表示
    TextBox1.Clear()
    'テキストファイルを現在のエンコード(シフトJIS)で開く
   
Dim sr As New System.IO.StreamReader("..\..\test.txt", System.Text.Encoding.Default)
    'テキストボックスに読込み表示
    TextBox1.Text = sr.ReadToEnd
    'ストリームを閉じ、システム リソースを解放
    sr.Close()
End Sub






2004/07/05
2005/09/25


VBレスキュー(花ちゃん)
VB.NET2003  VB2005